CTRL+Cwird SIGINT
an die Anwendung senden . Die Anwendung kann einen Handler für dieses Signal konfigurieren oder das Signal ignorieren. Standardmäßig gibt es keinen Handler und SIGINT
die Anwendung wird beendet.
Sie können verwenden, CTRL+\welche senden SIGQUIT
. Dies erzeugt auch einen Core-Dump, wenn das Core-Limit nicht Null ist.
Sie können den Prozess anhalten und mit zur Shell zurückkehren. Dadurch CTRL+Zwird die Ausführung des Prozesses gestoppt und zur Shell-Eingabeaufforderung zurückgekehrt. Der Prozess befindet sich im Speicher und ist als Job in der aktuellen Shell verfügbar. Sie können dann kill -SIGNAL %%
oder verwenden kill -SIGNAL %<job_ID>
, um ein Signal an diesen Job zu senden. ZB um den letzten Job zu tötenkill -9 %%
Wenn keiner von ihnen funktioniert, können Sie immer senden SIGTERM
, als letzten Ausweg, SIGKILL
der jeden Prozess beendet. Dieses Signal muss wie alle anderen Signale als derselbe Benutzer wie der Prozess, den Sie stoppen möchten, oder als Root gesendet werden. Um SIGKILL
an den Prozess zu senden , suchen Sie zuerst den Prozess mit ps aux
oder ps -edf
und führen Sie ihn dann aus kill -SIGKILL <process_ID>
, wobei dies <process_ID>
die PID
Spalte in der ps
Ausgabe ist.
Die Signale können nicht geliefert werden, wenn sich der Prozess in einem unterbrechungsfreien Anruf befindet. Unterbrechungsfreie Aufrufe sind Kernelfunktionen, die nicht gestoppt werden können und normalerweise aufgrund eines schlechten Treibers (z. B. eines nicht wiedereintretenden Treibers ) auftreten. Ein Prozess, der sich im ununterbrochenen Ruhezustand befindet, kann nicht gestoppt werden, bis der Anruf abgeschlossen oder der Server neu gestartet wurde.
Wenn ein Prozess zu einem Zombie wird , werden keine Ressourcen verwendet, die nur Platz in der Prozesstabelle beanspruchen. Ein Zombie-Prozess kann keine Signale empfangen.
Die Liste der Signale für die aktuelle Architektur finden Sie mit kill -l
Sehen Sie die man - Seiten von kill
, ps
und bash
. Um eine Manpage zu sehen, verwenden Sie Folgendes:man ps