Ich habe 20 Fragen zu Cron-Jobs und was man sonst noch alles einstellen muss durchgelesen und alles gemacht. Markieren Sie das nicht als Duplikat. Mein Skript sieht also so aus:
#!/bin/bash
openRTSP_process_ids=(`/bin/ps -fu $USER | /bin/grep "openRTSP" | /bin/grep -v "grep" | /bin/grep -v $0 | /usr/bin/awk '{print $2}'`)
echo $openRTSP_process_ids
for i in "${openRTSP_process_ids[@]}"
do
if [ -n "$i" ]; then
echo $i
kill -1 $i
fi
done
und meine Crontab sieht so aus:
#SHELL=/bin/bash
PATH=/home/username/bin:/home/username/.local/bin:/opt/OpenPrinting-Gutenprint/sbin:/opt/OpenPrinting-Gutenprint/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap$
43,41,26,21,16,12,1,7,48,46,33,49,54,57,59,4,9,14,19,24,27,29,32,34,39,44 * * * * bash /home/username/Documents/stop_openRTSP &>> /home/username/stop.log
50,55,0,5,10,15,20,25,30,35,40,45 * * * * /home/username/Documents/start_openRTSP
Ich habe es mit der Standard-Sh-Shell und der Bash-Shell versucht, beides funktioniert nicht. Ich habe versucht, die Ausgabe mit &>> Bash-Umleitung und 2>&1 Sh-Umleitung an einen Protokolldatei-Bot umzuleiten, aber die Protokolldatei ist einfach leer. Ich habe eine Reihe von Dingen ausprobiert, aber der Prozess wird nie beendet, aber er wird beendet, wenn ich es über die Befehlszeile mache.
Zusätzlich zum Hinzufügen von Pfad und Shell habe ich alle Befehle mit ihrem vollständigen Pfad geschrieben. Ich überprüfe, ob es funktioniert, indem ich mir ps aux | grep openRTPS ansehe und die geöffneten Prozesse ansehe. Wenn ich das Skript von der Befehlszeile aus ausführe, werden die Prozesse geschlossen, aber über den Cron-Job bleiben sie einfach geöffnet.
In einigen Versionen hatte ich am Anfang ein leichtes „Bla“, daher weiß ich, dass dieses spezielle Skript ausgeführt wird, aber nicht alle Befehle.
Antwort1
Wenn Jobs oder Skripte nicht das tun, was Sie erwarten, ist ein sehr hilfreicher Tipp zur Fehlerbehebung, set -x
oben im Skript hinzuzufügen und die Ausgabe zu überprüfen, um sicherzustellen, dass das Skript das tut, was Siedenkenes tut es. Es ist durchaus möglich, dass Sie einige Annahmen oder Annahmen bezüglich Ihrer Laufzeitumgebung treffen, die sich in der Praxis nicht bewahrheiten.