Alle Instanzen eines bestimmten Programms über die Befehlszeile beenden [geschlossen]

23

Gibt es eine Möglichkeit, alle Instanzen eines bestimmten Programms mit einem Befehlszeilenbefehl zu beenden?

George
quelle
12
Welches Betriebssystem? Es ist killall unter * ix.
Dave C
1
Diese Frage ist zu weit gefasst, es sei denn, Sie geben ein oder zwei Betriebssysteme an, auf denen Sie dies ausführen möchten.
Karan,

Antworten:

47

Unter GNU / Linux, BSD, OS X und anderen Unix-Versionen

killall program

In Windows

taskkill /IM program.exe
Der Hochstapler
quelle
6
Vorsicht mit "anderen Unix-likes": Unter Solaris killall, na ja, tötet alle : tehtable.wordpress.com/2009/12/07/note-to-self-solaris-linux
US2012
Verwendet die /FFlagge, um gewaltsam zu töten.
Hassaan Salik
4

Unter Windows 7 (Vista?) Bevorzuge ich, tskill processnameda Sie sich keine Befehlszeilenoptionen merken oder am Ende .exe schreiben müssen. z.B:

tskill chrome

Bricht alle Chromprozesse ab.

Unter Windows XP habe ich pskilldie pstools- Suite verwendet, die eine ähnliche Syntax verwendet. Beide Befehle können auch auf Remotecomputern ausgeführt werden, wenn Sie über Administratorrechte verfügen.

Luke
quelle
4

Auf vielen Systemen finden Sie die Befehle killund killall.

Wenn Sie die PID des Prozesses kennen, können Sie verwenden kill PID

Der erste beendet nur einen bestimmten Prozess. (Oder besser gesagt, es sendet ein Signal, z. B. das Signal zum Beenden). Sie können einen Wrapper mit ps und grep schreiben, um alle Prozesse abzubrechen, die mit einem Namen übereinstimmen.

oder, falls installiert, könnten Sie verwenden killall

Beachten Sie jedoch, dass nicht alle killall-Befehle dasselbe tun. Unter Solaris werden alle Prozesse abgebrochen. Ich wiederhole alles. Nicht nur die, die Sie wollten, sondern jeder Prozess, zu dem Sie berechtigt sind, wird getötet. Stellen Sie sicher, dass Sie die Handbuchseite Ihres lokalen Systems überprüfen und ob es sich um einen Link zu killall5 handelt.

Hennes
quelle
Nett. Also ist killall5 der Böse oder derjenige, der die Prozesse beendet, die Sie wollten?
LarsH
killall5ist der Böse.
letzte märz
2

Wenn Sie in Windows einen Prozess und alle von ihm gestarteten untergeordneten Prozesse beenden möchten, sollten Sie diesen Befehl Taskkill / im program.exe / t verwenden

Farhad
quelle
1

Unter Windows 7 gibt es taskkill.

Stf
quelle
1

Für Windows können Sie
taskkill / im
programmname verwenden. Für problematischere Programme
verwenden Sie taskkill / im programmname / f. Verwenden Sie ProcessExplorer, wenn Sie eine GUI-Alternative für Taskmanager wünschen

user13267
quelle
1

Unter Linux lautet der Befehl entweder pkilloder killall. pkillwird allgemein empfohlen, da auf einigen Systemen killalltatsächlich alle Prozesse abgebrochen werden .

Setzen Sie Monica wieder ein
quelle
dis ~ # killall Verwendung: killall [OPTION] ... [-] NAME ... killall -l, --list killall -V, --version -e, - exact erfordert eine exakte Übereinstimmung für sehr lange Namen -I , - Groß- und Kleinschreibung ignorieren, unempfindliche Prozessnamen stimmen überein ...
elcash
1
@Brendan Long: Es ist keine städtische Legende. Auf einigen SYS V-Systemen werden killalltatsächlich alle beendet. Das ist keine schlechte Sache, aber wenn Sie nicht erwarten, dass es sich auf einem anderen System anders verhält, erhalten Sie möglicherweise einen pädagogischen Moment .
Hennes
0

Hmm, und zu denken, dass ich pkill all die Jahre benutzt habe ...

KevinM
quelle