Prüfen ob Prozess läuft
-
Hallo.
Ich will ein Programm per SSH starten und das Programm soll auch nach dem beenden der ssh verbindung noch weiter ausgeführt werden.Nur wenn ich mich auslogge, dann wird automatisch auch der Prozess beendet.
Ich will nun ein Programm schreiben das überprüft ob der Prozess läuft. Wenn der Prozess läuft soll das Programm beendet werden(das script soll per cron ausgeführt werden). Wenn der Prozess nicht läuft dann soll der Prozess gestartet werden.
Ich weiss nur leider nicht wie ich das machen muss...
Hat jemand ne idee?
-
man: nohup, man: top, man: ps, man: pstree, usw....
ich würde dir empfehlen, nohup zu benutzen, damit der Prozess nicht gestoppt wird, wenn die SSH Verbindung gestoppt wird.
-
Damit sich der Prozess nicht beendet, musst Du erreichen, dass er sich von der Konsole (das sog. controlling Terminal) trennt. Das geht am besten indem Du das Programm mit "nohup programmname &" startest.
Für die Überwachung würde ich hergehen und das Programm in ein Script verpacken. Dieses Script wird wie oben gestartet und schreibt eine Status-Datei die aussagt ob es läuft oder nicht.
#!/bin/sh if [ -f /var/run/myprog.run ]; then echo "Programm läuft schon" exit fi touch /var/run/myprog.run programmname rm /var/run/myprog.run
-
ok danke.
habs zum laufen bekommen