Grundlagen von Linux und der Kommandozeile
Um einen Prozess zu stoppen, der nicht mehr reagiert, gilt es als empfehlenswert, zuerst „kill Prozess-ID“ zu verwenden und „kill -9 Prozess-ID“ nur dann, wenn er damit nicht endet. Was ist der Grund?
- ADas standardmäßige SIGTERM (Nummer 15) kann der Prozess empfangen und vor dem Beenden aufräumen, SIGKILL (Nummer 9) dagegen kann er nicht empfangen, und er wird ohne Aufräumen zwangsweise beendet
- BSIGTERM (Nummer 15), das kill standardmäßig sendet, beendet alles einschließlich der Kindprozesse, SIGKILL (Nummer 9) dagegen nur den angegebenen Prozess und hat daher weniger Auswirkungen
- CSIGKILL (Nummer 9) kann der Prozess empfangen und vor dem Beenden aufräumen, SIGTERM (Nummer 15), das kill standardmäßig sendet, dagegen kann er nicht ignorieren, und er wird sofort beendet
Antwort und Erläuterung anzeigen
Antwort: A. Das standardmäßige SIGTERM (Nummer 15) kann der Prozess empfangen und vor dem Beenden aufräumen, SIGKILL (Nummer 9) dagegen kann er nicht empfangen, und er wird ohne Aufräumen zwangsweise beendet
Ein Unix-Signal ist eine kurze Benachrichtigung, mit der das Betriebssystem einem Prozess ein Ereignis mitteilt; jedes hat eine feste Nummer und einen festen Namen. Ohne Optionen sendet kill SIGTERM (Nummer 15); ein Programm kann eine Routine (Handler) bereitstellen, die es empfängt, und vor dem Beenden etwa Dateien in Bearbeitung speichern oder temporäre Dateien löschen. SIGKILL (Nummer 9) kann der Prozess weder empfangen noch ignorieren, und der Kernel beendet ihn zwangsweise, sodass halb geschriebene Dateien beschädigt zurückbleiben können. Die ID des zu stoppenden Prozesses ermittelt man mit ps oder top.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile