Zabijanie wszystkich wystąpień określonego programu z wiersza poleceń [zamknięte]

23

Czy istnieje sposób na zabicie wszystkich wystąpień określonego programu za pomocą polecenia wiersza polecenia?

Jerzy
źródło
12
Który system operacyjny? To wszystko zabija pod * IX.
Dave C
1
To pytanie jest zbyt ogólne, chyba że podasz system operacyjny lub dwa, w których chcesz to osiągnąć.
Karan

Odpowiedzi:

47

W GNU / Linux, BSD, OS X i innych systemach uniksowych

killall program

W systemie Windows

taskkill /IM program.exe
Der Hochstapler
źródło
6
Ostrożnie z "innych Unix pokroju": W systemie Solaris killall, dobrze, zabija wszystko : tehtable.wordpress.com/2009/12/07/note-to-self-solaris-linux
us2012
Używa /Fflagi, aby wymusić zabicie.
Hassaan Salik
4

W systemie Windows 7 (Vista?) Wolę, tskill processnameponieważ nie musisz pamiętać przełączników wiersza polecenia ani pisać .exe na końcu. na przykład:

tskill chrome

Zabije wszystkie procesy chrome.

W pskillsystemie Windows XP korzystałem z pakietu pstools , który używa podobnej składni. Oba te polecenia mogą również działać na komputerach zdalnych, jeśli masz uprawnienia administratora.

Łukasz
źródło
4

W wielu systemach znajdziesz polecenia killi killall.

Jeśli znasz PID procesu, możesz go użyć kill PID

Pierwszy zabija tylko jeden określony proces. (A raczej wysyła do niego sygnał, np. Sygnał zakończenia). Możesz napisać opakowanie z ps i grep, aby zabić wszystkie procesy pasujące do nazwy.

lub, jeśli jest zainstalowany, możesz użyć killall

Uważaj jednak, nie wszystkie polecenia killall robią to samo. W systemie Solaris zabija wszystkie procesy. Powtarzam wszystko. Nie tylko ci, których chciałeś, ale każdy proces, który masz prawo zabić, zostanie zabity. Upewnij się, że sprawdziłeś stronę podręcznika lokalnego systemu i / lub czy jest to link do killall5.

Hennes
źródło
Miły. Czy więc killall5 jest paskudny czy zabija procesy, które chciałeś?
LarsH
killall5jest paskudny.
cpast 13.03.13
2

W systemie Windows, jeśli chcesz zabić proces i wszystkie procesy potomne, które zostały przez niego uruchomione, powinieneś użyć tego polecenia Taskkill / im program.exe / t

Farhad
źródło
1

W systemie Windows 7 jest taskkill.

Stf
źródło
1

w systemie Windows możesz użyć
taskkill / im nazwa_programu
użyj taskkill / im nazwa_programu / f dla bardziej problematycznych programów
Użyj ProcessExplorer, jeśli chcesz mieć GUI jako alternatywę dla Taskmanager

użytkownik13267
źródło
1

W systemie Linux, polecenie jest albo pkillalbo killall. pkilljest ogólnie zalecane, ponieważ w niektórych systemach killallfaktycznie zabije wszystkie procesy .

Brendan Long
źródło
dis ~ # killall Użycie: killall [OPCJA] ... [-] NAZWA ... killall -l, --list killall -V, --wersja -e, - dokładne wymaganie dokładnego dopasowania dla bardzo długich nazw -I , - dopasowanie procesu
ignoruje wielkość
1
@Brendan Long: To nie jest miejska legenda. W niektórych systemach SYS V killallzabija wszystkich. Nie jest to złą rzeczą, ale jeśli nie spodziewasz się, że będzie zachowywać się inaczej w innym systemie, możesz uzyskać moment edukacyjny .
Hennes
0

Hmm, i myślę, że korzystam pkill przez te wszystkie lata ...

KevinM
źródło