Ich habe ein Skript (nennen wir es Beobachter), die für einen bestimmten Prozess überprüft, wenn es nicht läuft der Beobachter wird den Prozess über ein Skript starten.Prozess nicht vollständig gestartet, wenn innerhalb crontab
Ich führe diesen Watcher in Crontab in jeder Minute. Nun, das Problem ist, dass es nicht in crontab funktioniert, sondern funktioniert, wenn ich den Watcher direkt von der Kommandozeile aus starte.
Angenommen, der Watcher startet eine Skriptdatei namens serverA.
ServerA Code
echo -n "Starting $NAME: "
# start network server
start-stop-daemon --start --background --make-pidfile \
--pidfile $net_server_pidfile --startas /bin/bash -- -c "exec $angel $net_server \
-c $conf_file --lora-eui $lora_eui --lora-hw-1 $lora_hw --lora-prod-1 $lora_id \
--lora-path $run_dir --db $conf_db \
--noconsole >> $net_server_log 2>&1"
sleep 2
# start packet forwarder
/usr/sbin/start-stop-daemon --chdir $run_dir/1 --start --background --make-pidfile \
--pidfile $pkt_fwd_pidfile --exec $angel -- $pkt_fwd
renice -n -20 -p $(pgrep lora-network-se)
renice -n -20 -p $(pgrep $(basename $pkt_fwd))
echo "OK"
nun direkt von der serverA wenn ich Beobachter laufen irgendwann etwas Ausgabe starten dann nach Echo wird weiter mit OK am Ende.
Aber in Crontab Logs sehe ich nicht das OK, aufgrund dessen der Service nie abgeschlossen und ServerA nie startet.
watcher.sh
else
echo "$(date) do something, no packet forwader runnig"
exec /etc/init.d/lora-network-server start
fi
Wie überprüfe ich die Umgebungseinstellungen der serverA-Datei? – ashusvirus
Hi @ashusvirus, ich habe weitere Informationen hinzugefügt, die Sie möchten. – Daein
Hallo @Daein es sagt '/ bin/sh:/bin/env: Keine solche Datei oder Verzeichnis' – ashusvirus