Veröffentlicht 21. Januar 200520 j Hi, wie kann ich in Linux mit Skript prüfen ob der Prozess XY läuft ?? Danke! Gruß Scratch
21. Januar 200520 j du musst schon sagen was das script dir dann ausgeben soll! soll es dich warnen wenn er nicht läuft, oder dir ein ok zurück geben wenn er läuft oder wie? da gibt es viele möglichkeiten. hier mal ein beispiel: ps -fe|grep "ssh localhost"|grep -v grep|awk '{print $2}' dieses dingens gibt dir die PID von dem Prozess "ssh localhost" zurück wenn dieser läuft. wenn er nicht läuft gibts nix :WD
21. Januar 200520 j Hi, hier mal ein Tipp um das 2te grep zu eliminieren ... ps -fe|grep "sh localhost"|awk '{print $2}' cya alligator
21. Januar 200520 j Autor Hi, ich würde gerne mein script abbrechen wenn er schon läuft ... muss ich wohl mit nem if machen wie mach ich das wenn mehrere ergebnisse kommen ??? kann ich das dann auch mit if machen ?? Gruß Scratch
21. Januar 200520 j Hallo, ps -fe|grep "sh localhost"|awk '{print $2}' interessant. Mich würde interessieren, warum das so ist - habe ich was in der man-Page vom grep überlesen? Da spart man sich ja einen Prozess - super!
21. Januar 200520 j jou, ich wusste das auch net, habs immer mit dem 2. grep gemacht. kuhler tipp :hodata so in der art kannst dus machen: export BLA=`ps -fe|grep "[s]sh localhost"|awk '{print $2}'` if [[ $BLA != $UFF ]]; then echo läuft; else echo läuft nicht; fi was dann genau passieren soll musste dir selbst ausdenken. will dir ja net die ganze arbeit wegnehmen :mod:
21. Januar 200520 j Hallo, Hallo, interessant. Mich würde interessieren, warum das so ist - habe ich was in der man-Page vom grep überlesen? Da spart man sich ja einen Prozess - super! bei grep kann man ja Wildcards benutzen z.B. ps -ef | grep fest findet jeden Prozess in dem der String "fest" vorkommt. ps -ef | grep [t,f]est findet jeden Prozess in dem der String "fest" oder "test" vorkommt. Das Problem ist ja das der grep sich selber in der Prozessliste auch findet, da je der gesuchte String (hier "httpd") auch bei ihm als Argument dabei ist: # ps -ef |grep httpd xxx 23361 14740 0 Jan 17 ? 0:00 httpd xxx 14416 22775 0 12:30:05 pts/2 0:00 grep httpd Und um das Problem zu umgehen sucht man nach dem ersten Buchstaben einfach mit der Mustererkennung. # ps -ef |grep [h]ttpd xxx 23361 14740 0 Jan 17 ? 0:00 httpd Hier werden alle Prozesse gefunden die den String "httpd" enthalten. Der grep-Prozess wird nicht gefunden, da der ja xxx 14416 22775 0 12:30:05 pts/2 0:00 grep [h]ttpd heisst und das trifft auf die Mustererkennung ja nicht zu. Verstanden? cya alligator
21. Januar 200520 j # ps -ef |grep [h]ttpd xxx 23361 14740 0 Jan 17 ? 0:00 httpd Hier werden alle Prozesse gefunden die den String "httpd" enthalten. Der grep-Prozess wird nicht gefunden, da der ja xxx 14416 22775 0 12:30:05 pts/2 0:00 grep [h]ttpd heisst und das trifft auf die Mustererkennung ja nicht zu. Verstanden? cya alligator Echt, genial :e@sy
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.