J'ai un notify.sh
script qui ressemble à:
notify-send "hi welcome"
Ma notification crontab pour 14h:
0 14 * * * home/hacks/notify.sh
Cependant, cela ne fonctionne pas. Quel est le problème?
Votre script manque un #! ligne au début, qui est la magie interprétée par le noyau pour dire quel interpréteur de commandes doit être utilisé pour le script.
Faites comme ça:
#!/bin/sh
notify-send "hi welcome"
et assurez-vous que le script est exécutable:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
De plus, puisque vous demandez que cela se produise une seule fois par jour, le fuseau horaire de la crontab est-il le même que votre propre fuseau horaire? Vous pourriez constater que cela se produit à 14 heures GMT.
Faire fonctionner crontab est facile seulement. Ici, je vais dire comment exécuter des tâches crontab. Il est utile pour quiconque est bloqué sur crontab.
Pour rendre le script exécutable, nous devons faire:
Ici, je lance ce script pour chaque minute ... En faisant ci-dessous le script, vous pouvez l'écrire dans un fichier journal pour voir si son fonctionnement
écrire le journal
envoyer un mail
la source
4 hypothèse:
le démon cron n'est pas en cours d'exécution (faites un
ps axfww | grep cron
et vérifiez)le notify-send essaie d'envoyer la sortie vers un terminal ou une session X - mais il est exécuté à partir de l'
cron
environnement et il ne sait pas "à qui parler", pour ainsi dire.votre script n'est pas exécutable
le
home/
chemin dans le script crontab est relatif à l'utilisateur sous lequel les scripts sont exécutés. Essayez d'utiliser le chemin completla source
Ajoutez
export DISPLAY=:0
au-dessus de la ligne notify-send dans votre script. Cela répond au deuxième point de Lornezog.la source
Vous devez ouvrir crontab par la commande suivante:
Cela exécutera votre script une fois par heure de 8 h à 15 h à 10 minutes après l'heure tous les lundis, mercredis et vendredis.
la source
Tout d'abord, nous devons modifier la crontab avec Command
crontab -e
et à l'intérieur,Crontab
ajouter le script Path of Executable et dans votre cas comme ceci* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.Démarrer / arrêter / redémarrer le service cron
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
la source
assez simple, ajoutez la ligne suivante en bas du fichier crontab via:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &
la source