# PID eines Prozesse mit PHP auslesen



## h4dhunTer (22. Oktober 2006)

Hallo,
ich habe ja nun schon mehrfach hier im PHP Forum etwas über Prozesse erfragt und bin zu einigen lösungen gekommen, aber leider dadurch auch zu problemen,

Ich starte eine Prozess mit system(); und beende es mit exec();. Ich muss den Prozess mit system(); starten, weil er sonst die Seite nicht zuende läd.

Da ich ein Webinterface baue und mit Shoutcast arbeite, laufen mehrere Server. Ich kann jeden einzelnen Starten, aber wenn ich einen Beenden will, killt er alle Prozesse die mit Shoutcast in verbindung sind.

Mein Code zum Killen:

```
<?
exec('killall -9 /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv0'.$_SESSION['id'].'.conf');
?>
```
Anscheinend macht killall -9 alle Prozesse die was mit /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv zu tun haben aus.

Nun zu meiner Frage. Kann ich mit PHP beim Starten eines Shoutcastservers die PID auslesen und in eine Datenbank speichern?
Ich habe gesehen, wenn ich Shoutcast starte, schreibt er mir "[main] pid: xxxxx". Nun könnte ich ja mit system(); den befehl starten und dann auslesen, aber leider geht das nicht, da system(); arbeitet, bis ich den browser schliese. Das heißt, er führ alles was nach dem Befehl system(); kommt, nicht aus.
Hat da jemand vielleicht eine Lösung?

Vielen Dank schonmal.


----------



## Headymaster (22. Oktober 2006)

Aber killall -9 is doch auch falsch oder net.

Also wenn ich auf meine Linux Maschine nen Prozess killen will.....z.b. nen Bouncer oder nen Gameserver oder sonst was , dann lass ich mir erstma mit

--> ps -efa |grep  NameDesProzesses    (z.b. srcds)  die Prozesse ausgeben....davor stehen nummern

und die kann man dann einzelnd mit

--> kill -9  NummerDesProzesses    killen.

Vielleicht hilft dir das ja ;-)

MFG Niels


----------



## h4dhunTer (22. Oktober 2006)

Hallo,
verstehe ich nicht. Wenn ich mit ps -efa |grep meinen Prozess abfrage, kommt dabei nichts raus.

Hat nicht noch jemand eine lösung?


----------



## Headymaster (22. Oktober 2006)

Äh aber machst das schon per shell ne?!

da musste dann halt nur ps -efa |grep sc_serv   eingeben.

Weil wenn ich reichtig verstehe ist die datei, die den Prozess startet sc_serv oder?!

Oder wenn du dem Prozess nen anderen Namen gegeben hast, dann musste den halt mit dem namen aufrufen ;-)

MFG Niels


----------



## h4dhunTer (22. Oktober 2006)

Hallo,
okk nun zeigt er mir was an:



> wwwrun   28200 32562  0 13:09 ?        00:00:00 /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv02.conf
> wwwrun   28321 23659  0 13:10 ?        00:00:00 /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv /srv/www/vhosts/domain/httpsdocs/login/shoutcast/sc_serv01.conf
> root     28426 28098  0 13:10 pts/0    00:00:00 grep sc_serv


Also bekomme ich da schonmal Zahlen u.s.w. Nun habe ich das per Programm gemacht. Kann ich das nun mit PHP machen und die Zahlen die ich brauche raussuchen und dann den Prozess killen?


----------

