Veröffentlicht 23. Mai 200421 j Hallo, ich suche eine möglichkeit abzufragen, ob ein bestimmtes Programm noch läuft, andernfalls soll es neu gestartet werden. Wie kann ich sowas anstellen ?
23. Mai 200421 j Hallo, aus der Shell heraus oder bist Du auf der Suche nach einem Stück Programmcode (C, C++)? Nic
23. Mai 200421 j Mit ps -aef | grep programmname kann man in der Prozessliste sehen ob das Programm läuft. Frank
23. Mai 200421 j Hallo, Mit ps -aef | grep programmname Das Problem dabei ist, dass man auch den grep-Prozess findet. Sofern Du die PID kennst, kannst Du mir "ps -p <pid>" abfragen, ob der Prozess läuft. Unter SuSe gibt es "checkproc", welches anhand des Dateinamens oder der PID den Status abfragt: /sbin/checkproc /bin/bash liefert als Exit-Code 0 sofern eine Bash läuft. Ansonsten muss Du Dir was mit "ps" und "awk" zusammenbauen: ps aux | awk '/schnulli/ && !/awk/ {print $2}' Liefert die PID des Prozesses mit dem Namen "schnulli" (sofern dieser läuft). Je nach Unix-Derivat musst Du ggf. etwas mit den Optionen von ps rumexperimentieren. Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.