Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Kann Prozesse nicht killen

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
xforze
Newbie
Newbie
Beiträge: 24
Registriert: 2. Mär 2004, 10:03

Kann Prozesse nicht killen

Beitrag von xforze »

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
uli42
Newbie
Newbie
Beiträge: 38
Registriert: 24. Feb 2005, 05:52
Wohnort: Kornwestheim

Beitrag von uli42 »

Hast Du's schon mal mit "kill -9 {prozessid}" probiert?

Uli.
Benutzeravatar
stulle
Hacker
Hacker
Beiträge: 284
Registriert: 23. Mai 2005, 22:49
Wohnort: Hildesheim

Beitrag von stulle »

Ä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.
rolle
Guru
Guru
Beiträge: 3724
Registriert: 4. Mai 2004, 21:50
Kontaktdaten:

Beitrag von rolle »

Holzhammermethode mit 'killproc'?
Horrido, Roland

Für meine Postings gilt außer bei Zitaten hier im Linux-Club die Creative Commons.
Benutzeravatar
stulle
Hacker
Hacker
Beiträge: 284
Registriert: 23. Mai 2005, 22:49
Wohnort: Hildesheim

Beitrag von stulle »

Das wars nicht.
Schade.
Es muss doch eine Möglichkeit geben!
Was ist in der Prozesstabelle die Abkürzung VmRss?
jengelh
Guru
Guru
Beiträge: 4039
Registriert: 20. Nov 2004, 17:42
Kontaktdaten:

Beitrag von jengelh »

VMRSS (Virtual Memory Resident Segment Size)? Hab ich nicht.. Nur VSZ (Virtual Size) und RSS (Resident Segment Size).
Benutzeravatar
stulle
Hacker
Hacker
Beiträge: 284
Registriert: 23. Mai 2005, 22:49
Wohnort: Hildesheim

Beitrag von stulle »

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)
Benutzeravatar
Kurt M
Hacker
Hacker
Beiträge: 408
Registriert: 24. Sep 2004, 12:39
Wohnort: Bayrischer Wald
Kontaktdaten:

Beitrag von Kurt M »

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.
Benutzeravatar
stulle
Hacker
Hacker
Beiträge: 284
Registriert: 23. Mai 2005, 22:49
Wohnort: Hildesheim

Beitrag von stulle »

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.
Antworten