Nicht in der Lage, einen Job zu beenden, ohne sie zu öffnen
Frage
ich den folgenden Code erfolglos
sudo killall %4
Dabei steht% 4 ist meine Vim-Sitzung.
Wie kann man einen Job beenden, ohne es den Vordergrund zu?
Lösung
Ich glaube, Sie „töten“ statt „killall“ wollen. Getestet habe ich unter tcsh wie folgt aus:
home% cat
^Z
Suspended
home% kill %1
home%
[1] Terminated cat
Außerdem bezweifle ich dies mit sudo funktionieren würde, weil sudo eine neue Shell aufrufen würde, wäre es nicht? Und in dieser Schale,% 4 nicht definiert werden.
home% cat
^Z
Suspended
home% sudo kill %1
Password:
kill: illegal process id: %1
Wenn Sie wirklich sudo benötigen, können Sie versuchen, diese:
home% jobs -l
[1] + 26318 Suspended cat
home% sudo kill 26318
Andere Tipps
Versuchen kill %4
statt. Das Unix-Shell verwendet% x als Variable für aktuell laufende Prozesse. Um die Prozesse sehen Sie mit der% x Syntax verwenden können, verwenden jobs
. Killall ist ein Wrapper um „töten“, das im Grunde das Äquivalent von `ps -aux ist | grep | schneiden -f2 -d "" | xargs töten‘oder dergleichen, wenn Sie ein Shell-junky sind.
Nein, sorry, dass Shell-Befehl nicht ganz funktioniert, aber es funktioniert zeigen, wie killall funktioniert = p. Es tötet einfach jeden Prozess kann es, dass die Zeichenfolge entspricht, die Sie zur Verfügung stellen.
Versuchen Sie auch, `Mann töten‘ mehr zu Kill zu lernen. Insbesondere kill -9 können Sie nützlich finden. Es ist sorta das Äquivalent von ‚Sofort beenden‘.