Ich habe ein Bash-Skript mit der Berechtigung, ausgeführt zu werden. Ich hänge es an einen Cron-Job an. Dieses Skript bricht im Grunde nur einen bestimmten Prozess ab und startet ihn neu Wie erwartet wird der Prozess heruntergefahren und neu gestartet, aber wenn der Cron-Job ausgelöst wird, wird nur der Prozess heruntergefahren und nichts weiter ... Gibt es eine Idee, warum dieses Verhalten auftritt? Vielen Dank
0
Antworten:
Beachten Sie, dass ein Skript, das in cron ausgeführt wird, nicht dieselbe Umgebung hat wie ein Skript, das in der Shell ausgeführt wird .
Der Cron-Daemon startet eine Subshell aus Ihrem HOME-Verzeichnis.
Der cron - Daemon liefert eine Standardumgebung für jede Schale, definieren
HOME
,LOGNAME
,SHELL
(=/usr/bin/sh
) undPATH
(=/usr/bin
).Hängen Sie nicht von Umgebungsvariablen ab. Dies schließt Pfadeinstellungen, x11-Einstellungen oder alles andere ein.
Verwenden Sie den vollständigen Pfad, zum Beispiel:
anstatt einfach anzurufen
java
oderpython
du musst/usr/bin/java
oder benutzen/usr/bin/python
.quelle
PATH
als Teil Ihrer Cron-Spezifikation an ...