Kill-Befehl geht nicht!

O

oriwo

Mitglied
Thread Starter
Dabei seit
21.05.2005
Beiträge
21
Reaktionspunkte
0
Hallo zusammen,

bin vor ca. 4 Wochen auf den Mac umgestiegen. Folgendes fiel mir auf:

Nach intensiven Arbeiten passiert es, daß ein Programm wie Toast oder DiskOrder bzw. Elements sich so aufhängt, daß es sich auch mit dem Kill-Befehl nicht löschen läßt. Zumeist geht dies mit dem nicht mehr funktionieren des DVD-Laufwerkes einher. Hast jemand eine Idee wie man das hinbekommt ohne den Mac neu "hart" zu booten?

Gruß

oriwo
 
du lässt dir im Terminal mit "ps -aux" die laufenden Prozesse anzeigen, du kannst auch mit "ps -aux | grep Programmname" einen bestimmten Prozess herausgreifen.

Vor dem Prozess siehst du dann eine PID. Mit dem Befehl "kill PID" oder "sudo kill PID" kannst du dann dieses Programm beenden.

Gruß

::TheMagnificent::
 
TheMagnificent schrieb:
Vor dem Prozess siehst du dann eine PID. Mit dem Befehl "kill PID" oder "sudo kill PID" kannst du dann dieses Programm beenden.

...das ist ja genau der Punkt kill pid in der Konsole beendet das Programm dann leider nicht. Das hängende Programm steht weiterhin in der Liste.

Was unterscheidet den sudo kill Befehl vom normalen kill Befehl außer daß man System Admin ist, soweit ich in den letzen 10 Min lesen konnte?

Gruß

oriwo
 
oriwo schrieb:
...das ist ja genau der Punkt kill pid in der Konsole beendet das Programm dann leider nicht. Das hängende Programm steht weiterhin in der Liste.

Was unterscheidet den sudo kill Befehl vom normalen kill Befehl außer daß man System Admin ist, soweit ich in den letzen 10 Min lesen konnte?

Gruß

oriwo
dass du den kill-Befehl im Terminal meintest konnte ich aus deinem Posting nicht ganz herauslesen. Zur Erklärung des Befehls "sudo" sollten wir vielleicht jemand fragen, der es dir genau erklären kann. Mehr als die Bedeutung "superuserdo" kann ich dir auch nicht liefern. (Und das hast du ja schon selbst herausgefunden)
 
Zum killen nehme ich das Programm "Aktivitäts-Anzeige", zu finden in Programme/Dienst-Programme. Darin dann die gewünschte Anwendung markieren und links oben auf das rote Stop-Symbol klicken.
 
sudo gibt dir die Moeglichkeit, in einer shell (Terminal) temporaere root Rechte zu erlangen. Als root hast du zum Beispiel die Moeglichkeit, Prozesse die dem System gehoeren zu beenden. Der kill Befehl funktioniert unter OS X wie unter jedem anderen Unix. Wenn du nicht genau weiist was du tust kannst du mit sudo einigen Schaden an deinem System anrichten.

Auch ohne Terminal gibt es verschiedene Moeglichkeiten haengende Programme abzuschiessen. Mit alt+apfel+escape kannst du ein Fenster in den Vordergrung bringen in dem du das entsprechended Programm beenden kannst. Das selbe Fenster ereichst du auch ueber das Apfel Menu (Force Quitt...)

Eine andere Moeglichkeit ist das Programm Activity Monitor aus dem Utilities Folder. Mit dem lassen sich alle laufenden Prozesse listen und killen.

Cheers,
Lunde
 
Manchmal hängen Prozesse so stark, dass sie mit den default kill-Parametern nicht zu beenden sind. Abhilfe sollte hier "kill -9 PID" schaffen. Was das bedeutet lese man bitte selber mit "man kill" nach.
 
Zuletzt bearbeitet:
TheMagnificent schrieb:
dass du den kill-Befehl im Terminal meintest konnte ich aus deinem Posting nicht ganz herauslesen. Zur Erklärung des Befehls "sudo" sollten wir vielleicht jemand fragen, der es dir genau erklären kann. Mehr als die Bedeutung "superuserdo" kann ich dir auch nicht liefern. (Und das hast du ja schon selbst herausgefunden)


...sorry da hatte ich mich etwas unpräzise ausgedrückt.
 
admartinator schrieb:
Zum killen nehme ich das Programm "Aktivitäts-Anzeige", zu finden in Programme/Dienst-Programme. Darin dann die gewünschte Anwendung markieren und links oben auf das rote Stop-Symbol klicken.


Hallo,

macht das denn dann qualitativ etwas anderes wie Apfel+Alt+ESC?

Gruß

oriwo
 
oriwo schrieb:
macht das denn dann qualitativ etwas anderes wie Apfel+Alt+ESC?
Vergleiche doch mal selbst. Wieviele Programme siehst du mit deiner Methode und weiviele mit der Aktivitäts-Anzeige? ;)
 
lundehundt schrieb:
sudo gibt dir die Moeglichkeit, in einer shell (Terminal) temporaere root Rechte zu erlangen. Als root hast du zum Beispiel die Moeglichkeit, Prozesse die dem System gehoeren zu beenden. Der kill Befehl funktioniert unter OS X wie unter jedem anderen Unix. Wenn du nicht genau weiist was du tust kannst du mit sudo einigen Schaden an deinem System anrichten.

Auch ohne Terminal gibt es verschiedene Moeglichkeiten haengende Programme abzuschiessen. Mit alt+apfel+escape kannst du ein Fenster in den Vordergrung bringen in dem du das entsprechended Programm beenden kannst. Das selbe Fenster ereichst du auch ueber das Apfel Menu (Force Quitt...)

Eine andere Moeglichkeit ist das Programm Activity Monitor aus dem Utilities Folder. Mit dem lassen sich alle laufenden Prozesse listen und killen.

Cheers,
Lunde

Hallo,

danke für die Erläuterungen. Leider hat alt+apfel+escape mich in den gen. Fällen nicht weitergebracht. Die hängenden Programme bleiben weiter im Speicher und wie gesagt ging dann zumeist kein Zugriff (ikl. öffnen/schließen) auf das DVD-Laufwerk mehr.

Gibt es für diese Fälle ein Patentrezept?

Gruß

oriwo
 
admartinator schrieb:
Vergleiche doch mal selbst. Wieviele Programme siehst du mit deiner Methode und weiviele mit der Aktivitäts-Anzeige? ;)

...ich probiere es einfach mal aus, wenn der Fall - was leider nicht so selten ist - wieder eintritt.

Gruß

oriwo
 
Greifen die haengenden Programme auf das Laufwerk zu oder tritt das unabhaengig davon auf ob ein Medium im Laufwerk liegt?

Cheers,
Lunde
 
Der kill Befehl sendet lediglich eine Nachricht an ein Programm (UNIXer sprechen von einem SIGNAL), daß es sich beenden möge und zwar umgehend. Hängt das Programm, wird es dieses Signal nie abarbeiten. In diesm Fall gilt es ein weit dringlicheres SIGNAL an das OS zu übermitteln diesen task sofort und ungefragt zu eleminiern. Das geht per kill -9 taskid.
Kill macht nur mit dieser option Sinn, wenn ein Task blockiert! Gehört der task nicht Dir, muß ein sudo davor. Da hängende tasks manchmal auch die GUI blockieren, mache ich so etwas auch aus dem Terminal heraus, aber das mag ein LINUX-Überbleibsel sein :D
 
lundehundt schrieb:
Greifen die haengenden Programme auf das Laufwerk zu oder tritt das unabhaengig davon auf ob ein Medium im Laufwerk liegt?

Cheers,
Lunde


...ich meine zumeist wenn noch ein Medium im Lauwerk ist. ich greife jedoch nicht unbedingt auf das Medium zu - zumindest nicht bewust.

Gruß

oriwo
 
wegus schrieb:
Der kill Befehl sendet lediglich eine Nachricht an ein Programm (UNIXer sprechen von einem SIGNAL), daß es sich beenden möge und zwar umgehend. Hängt das Programm, wird es dieses Signal nie abarbeiten. In diesm Fall gilt es ein weit dringlicheres SIGNAL an das OS zu übermitteln diesen task sofort und ungefragt zu eleminiern. Das geht per kill -9 taskid.
Kill macht nur mit dieser option Sinn, wenn ein Task blockiert! Gehört der task nicht Dir, muß ein sudo davor. Da hängende tasks manchmal auch die GUI blockieren, mache ich so etwas auch aus dem Terminal heraus, aber das mag ein LINUX-Überbleibsel sein :D

...dank für die interessanten Erläuterungen. So ganz langsam frischen sich meine uralten Unix/Linux-Kenntnisse - die jedoch nie über ein frühes Experimentierstadium hinaus gegangen sind - wieder ein wenig auf.

Ich werde dann demnächst mal (sudo) kill -9 pid versuchen. Schaun wir mal ob es hilft. Der Kaltstart ist mitunter doch sehr störend und gehörte auch unter NT/XP ja eher zu den seltenen Ereignissen.

Kannman das Terminal eigentlich direkt via Tastenkombinationaufrufen - falls das GUI hängt?

Gruß

oriwo
 
Noch ne kleiner Ergänzung.

Die meisten Signale, die man mit "kill" an ein Programm senden kann, können von dem Programm mit Signal-Handlern abgefangen werden.
Oder anders gesagt, das Programm entscheidet, ob und ggf. wie genau es auf diese Signale reagiert.

Anders sieht es bei "kill -9" aus.
Das kann nicht abgefangen werden;d entscheidet allein das Betriebssystem.

Und nochwas:
Wenn man den Namen des Prozesses kennt, kann man sich u. U. das Heraussuchen der PID ersparen.
sudo killall -9 Toast
killt zum Beispiel _alle_ Prozesse mit dem Namen Toast.
 
maceis schrieb:
Und nochwas:
Wenn man den Namen des Prozesses kennt, kann man sich u. U. das Heraussuchen der PID ersparen.
sudo killall -9 Toast
killt zum Beispiel _alle_ Prozesse mit dem Namen Toast.

...das ist auch ein interessanter Hinweis.

So besten dank für alle sachdienlichen Hinweise. Ich werde dies beim nächsten Hängenbleiber mal testen...
 
Hi,

vielleicht noch ein kleiner Hinweis zum Thema 'kill -9 <pid>' ...

Wenn ein Prozess eine I/O Operation durchführt (z.B. schreiben auf Platte / CD) wird ihm für diese Zeit ein besonderer Prozess-Status zugeordnet.
Während dieser Phase kann man so einen Prozess auch mit kill -9 nicht abschießen.

Bei ps -aj wird diese Info in der Spalte 'state' angezeigt.
Aus der man-page von ps hab' ich das hier gefunden:

state The state is given by a sequence of letters, for example,
"RWNA''. The first letter indicates the run state of the process:

D Marks a process in disk (or other short term, uninter-
ruptible) wait.
...

Im Normalfall sollten diese Phasen recht kurz sein - wenn es aber Probleme mit der HW gibt, kann das dazu führen, dass so ein Prozess 'ewig' auf eine Anwort wartet und dadurch 'Abgestürzt' erscheint.

--> sprich: Prüfe doch mal ob es keine Hardwareausfälle sind -
evtl. thermische Probleme ?

Hoffe das hilft noch etwas weiter,
Thomas
 
Gibt es denn keine Tastenkombi wie bei Windows ALT+F4 zum sofortigen gezwungenem Beenden ?

Ich habe das Problem, daß z.B. Spiele den ganzen Bildschirm schwarz machen, dann aber aufhängen. Wie kann ich denn diesen Vorgang per Zwang beenden ?
 
Zurück
Oben Unten