Wie kann ein Programm in einer Endlosschleife ausgebrochen werden?

101967
trinity

Wie würde ich beim Ausführen eines Programms, das in einer Endlosschleife im Terminal ausgeführt wird, die Eingabeaufforderung zurückgeben?

(Ich verwende Fedora Core 5)

2
Fedora 5? Wie in "fünf" ??? balpha vor 14 Jahren 0

8 Antworten auf die Frage

10
Victor Nicollet

Sie können SIGHUP (Ctrl-Z) oder SIGTERM (Ctrl-C) senden. Ersteres pausiert lediglich das Programm, mit dem Sie fortfahren können fg(oder als Hintergrundprozess fortsetzen bg).

Wenn Strg-C nicht funktioniert, können Sie das weniger bekannte Strg- \ versuchen, das SIGQUIT sendet. a3nm vor 8 Jahren 1
3
Tom Wijsman

Sie müssen das Programm mit Ctrl+ Cbeenden, wobei C für Abbrechen steht.

1
Thilo

Entweder Strg-C wie erwähnt oder falls dies nicht funktionieren sollte, öffnen Sie ein anderes Terminal, suchen Sie den Prozess mit ps -ef | grep, suchen Sie die Prozess-ID (pid) und verwenden Sie den Befehl kill: kill -9

0
Justin Niessner

Sie können Ctrl+ drücken C.

0
Emil Ivanov

Starten Sie das Programm mit &am Ende, damit es im Hintergrund ausgeführt wird. Wenn Sie das Terminal beenden, wird / wird die Anwendung möglicherweise ebenfalls beendet.

root@root:~$ run_app with params & 

Mit Ctrl+Cwird es töten, wenn Sie das vergessen haben &.

0
Ignacio Vazquez-Abrams

Es gibt keine Möglichkeit zu beweisen, dass ein beliebiges Programm jemals endet, ohne es tatsächlich zu Ende zu führen.

Es ist jedoch möglich, einen Watchdog über zB den D-Bus einzurichten, der ein Programm abbrechen kann, wenn innerhalb einer bestimmten Zeit keine Antwort empfangen wird.

0
dicroce

Wie bereits erwähnt, können Sie der Befehlszeile einfach ein & hinzufügen. Sie können auch STRG-Z drücken (dadurch wird der Prozess in den Status "Gestoppt" versetzt). Geben Sie dann bg ein, damit der Prozess wieder im Hintergrund ausgeführt wird.

-1
bonzi

Sie können die Tastenkombination Strg + Z eingeben: ps ux, um den laufenden Prozess anzuzeigen, wenn derjenige vorhanden ist, den Sie töten möchten

Geben Sie Folgendes ein: kill -9 processId, wobei die Prozess-ID die Prozess-ID der Schleife ist