CTRL+Cwird SIGINTan die Anwendung senden . Die Anwendung kann einen Handler für dieses Signal konfigurieren oder das Signal ignorieren. Standardmäßig gibt es keinen Handler und SIGINTdie 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, SIGKILLder 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 SIGKILLan den Prozess zu senden , suchen Sie zuerst den Prozess mit ps auxoder ps -edfund führen Sie ihn dann aus kill -SIGKILL <process_ID>, wobei dies <process_ID>die PIDSpalte in der psAusgabe 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, psund bash. Um eine Manpage zu sehen, verwenden Sie Folgendes:man ps