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?

  1. 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
  2. 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
  3. 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.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Linux und der Kommandozeile

  1. Während ein langwieriges ./sim.sh in einem Terminal läuft, möchte man im selben Terminal andere Befehle verwenden. Was geschieht, wenn man Strg+Z drückt und danach bg ausführt?
  2. Auf einem per SSH erreichten Server wurde eine langwierige Berechnung mit „./run.sh &“ gestartet; als die Verbindung getrennt wurde, brach auch die Berechnung ab. Wie startet man sie am besten, damit sie nach dem Trennen der Verbindung weiterläuft?
  3. Welche Zeichen werden angezeigt, wenn die beiden obigen Zeilen in einer Shell ausgeführt werden?
  4. Welche Ausgaben erzeugen die beiden echo-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?
  5. Wie oben gezeigt, wird das Skript s.sh mit Argumenten ausgeführt. Welche Ausgabe ist richtig?