Ich habe ein notify.sh
Skript, das so aussieht:
notify-send "hi welcome"
Meine Crontab-Benachrichtigung für 14 Uhr:
0 14 * * * home/hacks/notify.sh
Dies funktioniert jedoch nicht. Was ist das Problem?
In Ihrem Skript fehlt ein #! Zeile am Anfang, das ist die Magie, die der Kernel interpretiert, um zu sagen, welcher Befehlsinterpreter für das Skript verwendet werden soll.
Lass es so aussehen:
#!/bin/sh
notify-send "hi welcome"
und stellen Sie sicher, dass das Skript ausführbar ist:
ls -l home/hacks/notify.sh
chmod +x home/hacks/notify.sh
ls -l home/hacks/notify.sh
Da Sie nur einmal am Tag darum bitten, dass dies geschieht, stimmt die Zeitzone der Crontab mit Ihrer eigenen Zeitzone überein? Möglicherweise geschieht dies um 14 Uhr GMT.
Crontab laufen zu lassen ist nur einfach. Hier werde ich sagen, wie man Crontab-Jobs ausführt. Es ist nützlich für alle, die auf Crontab stecken.
Um das Skript ausführbar zu machen, müssen wir Folgendes tun:
Hier führe ich dieses Skript jede Minute aus ... Wenn Sie das folgende Skript ausführen, können Sie es in eine Protokolldatei schreiben, um festzustellen, ob es funktioniert
Schreibe Log
mail senden
quelle
4 Hypothese:
der Cron - Daemon läuft nicht (tun ein
ps axfww | grep cron
und überprüfen)Das Benachrichtigungssendeverfahren versucht, eine Ausgabe an ein Terminal oder eine X-Sitzung zu senden, wird jedoch in der
cron
Umgebung ausgeführt und weiß sozusagen nicht, mit wem zu sprechen ist.Ihr Skript ist nicht ausführbar
Der
home/
Pfad im crontab-Skript ist relativ zu dem Benutzer, unter dem das Skript ausgeführt wird. Versuchen Sie, den vollständigen Pfad zu verwendenquelle
Fügen Sie
export DISPLAY=:0
über der Benachrichtigungs-Sende-Zeile in Ihrem Skript hinzu. Damit ist Lornezogs zweiter Punkt angesprochen.quelle
Sie müssen crontab mit dem folgenden Befehl öffnen:
Dadurch wird Ihr Skript jeden Montag, Mittwoch und Freitag einmal pro Stunde von 8 bis 15 Uhr um 10 Minuten nach der vollen Stunde ausgeführt.
quelle
Zuallererst müssen wir die crontab mit Command bearbeiten
crontab -e
und dannCrontab
das Skript Path of Executable hinzufügen und in Ihrem Fall so* 14 * * * home/hacks/notify.sh >/dev/null 2>&1
.Cron-Dienst starten / stoppen / neu starten
/etc/init.d/crond start /stop / restart
service crond start /stop /restart
systemctl stop crond.service
systemctl stop crond.service
quelle
Ganz einfach, füge folgende Zeile am Ende der crontab-Datei hinzu:
sudo nano /etc/crontab
@reboot root cd /home/pi/node-sonos-http-api && npm start &
quelle