• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Kann Prozesse nicht killen

xforze

Newbie
Hallo,

ich hab ein Problem mit dem beenden von Prozesse.
Kurze übersicht was ich machen will:
Der User www-data (Apache) startet mit Hilfe sudo und screen ein Spiel unter einem Useraccount.

Hier das Startcommand:
$exec=shell_exec("sudo /bin/su $user -c 'start-server.sh /home/$user/$game' 2>&1");


Wenn jemand ein Spiel über den Webserver wechseln will, muss erst das alte beendet und ein anderes gestartet werden.

Das Problem ist das das gestartete Spiel nicht mehr gekillt werden kann.

Top bringt mir dann folgende Ausgabe:
5235 server1 9 0 1312 1312 908 S 0.0 0.5 0:00 screen
5239 server1 9 0 964 964 820 S 0.0 0.3 0:00 CS-S.run
5302 server1 9 0 1132 1132 828 S 0.0 0.4 0:00 screen
5306 server1 9 0 964 964 820 S 0.0 0.3 0:00 CS-16.run
5308 server1 9 0 1060 1060 832 S 0.0 0.4 0:00 hlds_run
5316 server1 9 0 2091 20M 3376 S 0.0 8.2 0:03 hlds_i686
5331 server1 9 0 1880 1876 1660 S 0.0 0.7 0:00 sshd
5332 server1 9 0 1160 1160 968 S 0.0 0.4 0:00 bash
5462 server1 9 0 1584 1584 1180 S 0.0 0.6 0:00 mc
5464 server1 9 0 1196 1196 996 S 0.0 0.4 0:00 bash
5815 server1 9 0 1112 1112 824 S 0.0 0.4 0:00 psybnc
6284 server1 14 0 496 496 424 S 0.0 0.1 0:00 sleep


Diese Prozesse laufen jetzt meinesachtens nach als User "server1"

ich kann aber wenn ich mich als serevr1 einlogge keinen Prozess killen.
Als root funktioniert "killall screen" auch nicht.
wenn ich als user einen screen herhole ,kann ich auch nix eingeben, sondern nur wieder deatachen.

Ich denke da liegt irgendwo der Fehler das das Programm irgendwie in den Hintergrundgeschossen wird wo es keine Befehle oder Eingaben bekommt.

Vielen Dank schonmal für die Hilfe,

Thomas
 

stulle

Hacker
Ähnliches Problem.
mit kill -9 PID kann ich meinen abgestürzten aMule nicht rauskriegen.

Es bringt auch ein einfaches ab- und anmelden nichts.
Erst ein Neustart behebt das Problem, das ist natürlich nicht Sinn der Sache.
 

stulle

Hacker
Das wars nicht.
Schade.
Es muss doch eine Möglichkeit geben!
Was ist in der Prozesstabelle die Abkürzung VmRss?
 
VMRSS (Virtual Memory Resident Segment Size)? Hab ich nicht.. Nur VSZ (Virtual Size) und RSS (Resident Segment Size).
 

stulle

Hacker
nun: wenn ich Strg + Esc drücke, öffnet sich der Processtable und dort habe ich eine Auflistung sortiert nach (in Klammern meine Werte):

Name (amule),
PID (15783),
Nutzer% (0),
System% (0),
Priorität (0),
VM-Größe (0),
VMRss (12),
Benutzer (ich),
Befehl (leer)
 

Kurt M

Hacker
Es könnte sich vielleicht um Zombie Prozesse handeln.

Diese entstehen, wenn ein übergeordneter Prozess beendet wird dabei aber einen ihm untergeordneten nicht beendet. Dieser bleibt dann als Dateilleiche im Speicher und kann mit keiner Methode (außer mit Reboot) entfernt werden.

Im Prinzip ist so ein Prozess völlig egal, da er zwar etwas Speicher braucht, aber keine eigene Aktivität mehr hat. Dummerweise kann alleine die Existenz so eines toten Prozesses dazu führen, dass andere Programme nicht richtig gestartet werden können.

Ich hatte vor einem Monat ein ähnliches Problem mit einer Betaversion von openOffice 2.0. Inzwischen wurde der Fehler dort aber behoben.

Damals hatte ich viel gegoogelt, das Ergebnis war, dass man so einen Prozess nur durch Neustart loswird. Mit "kill" kann man ihn nicht entfernen, da keine Referenz mehr auf ihn existiert.
 

stulle

Hacker
Das scheint ganz genau das zu beschreiben was ich hier bei mir entdeckt habe.
Ich konnte das Programm nicht mehr vernünftig starten, als es dann nach einiger Zeit doch gelang, lief es nicht zufriedenstellend.
 
Oben