Wie kann ich einen Prozess mit top unter OS X beenden?

8

Unter anderen Unixen kann ich die Prozess-ID verwenden topund dann drücken und eingeben K. Wie kann ich das in OS X machen?

Ich kann kill [the_pid]alleine in der Kommandozeile tippen und das funktioniert. Ich habe mich jedoch gefragt, ob es eine Möglichkeit gibt, dies im topProgramm zu tun .

Michael Durrant
quelle
1
Wenn Sie auf anderen * NIXs arbeiten, haben Sie diese wahrscheinlich bereits verwendet htop. Ich finde es informativer und konsistenter von Maschine zu Maschine. Es ist über MacPorts verfügbar.
Ephsmith

Antworten:

5
# top

Drücken Sie shift+ s. Dies wird Folgendes hervorbringen:

signal [TERM]:

Zu diesem Zeitpunkt können Sie einfach die Eingabetaste drücken, um eine 'höfliche' Anforderung zum Beenden des Prozesses ("Signal 15") zu erhalten, mit der der Prozess Dateien bereinigen, Speicher freigeben usw. Für Prozesse, die auf diese Weise nicht beendet werden können, können Sie eingeben das Wort "töten", das Signal "9" ist, dann drücken return.

Jetzt werden Sie oben zur Eingabe einer PID (Prozess-ID) aufgefordert:

pid:

Geben Sie die PID des Prozesses ein, den Sie beenden möchten, und das sollte sich darum kümmern.

Ivan Mironov
quelle
1
Ich würde SIGKILL nicht als erste Wahl verwenden. Das vorgeschlagene SIGTERM sollte für die meisten Prozesse ausreichen. SIGKILL beendet einen Prozess ohne Rückgriff oder Bereinigung und hinterlässt möglicherweise einen "Zombie" -Prozess, der noch offene Dateideskriptoren, zugewiesenen Speicher usw. hat.
Jan Steinman
Danke Jan. Allerdings sehe ich in dieser Antwort keine Erwähnung von SIGKILL. Vermutlich impliziert? Auch wenn SIGTERM eine bessere Option ist, geben Sie bitte genau an, was eingegeben werden soll.
Michael Durrant
ok, ich werde es einfach selbst aktualisieren.
Michael Durrant
4

Von der topManpage:

  S<signal><pid>
          Send  <sig>  to  <pid>.   <sig> can be specified either as a number or
          as a name (for example, HUP).  The default signal starts out as TERM.
          Each time a signal is  successfully  sent,  the default signal is updated
          to be that signal.  <pid> is a process id.
nohillside
quelle