aby znaleźć PID procesu zabicia, użyj:
pgrep <process command>
Następnie używam polecenia kill, aby zabić zwracany przez PID pgrep <process command>
kill <PID>
Czy te polecenia można połączyć w jedno, aby zabić PID lub PID zwrócone przez pgrep <process command>
? Czy istnieje metoda zabicia wielu procesów według nazwy polecenia?
Coś jak : kill(pgrep <name of process>)
kill
ps
process-management
niebieskie niebo
źródło
źródło
pkill
? Alternatywnie możesz użyćxargs
.pgrep
strona podręcznika wspominapkill
wszędzie (ponieważ 2 polecenia pochodzą z tego samego pakietu).Odpowiedzi:
Możesz użyć pkill:
Możesz także skorzystać z zastępowania procesów (chociaż nie jest to tak jasne):
I możesz użyć
xargs
:źródło
pgrep
ikill
. Po prostu użyjpkill
.pkill
uzyskaniem listy procesów a faktycznym wysłaniem sygnału, w takim przypadku trudniej jest to dostrzec.kill $(ps|head -1)
uniknięcia wyścigu ... ale tak naprawdę nie ma sposobu, aby tego uniknąć. Proces może umrzeć w dowolnym momencie rurociągu.Możesz również użyć
killall
npwysłać
SIGTERM
do wszystkichfirefox
procesów.źródło
killall
ma różne znaczenie w różnych systemach uniksowych - jeśli korzystasz z systemu innego niż Linux, sprawdź dokumentację.killall -KILL firefox
czuję się bardzo satysfakcjonująco.killall
jest powodem, dla którego nigdy go nie używam. Na przykład bieganiekillall
na polu solaris jest katastrofalne.Tak, możesz użyć funkcji bash i zapętlenia wyjścia.
źródło
kill <no>:failed: operation not permitted
Możesz zabić wiele procesów za pomocą tablicy. W tym przypadku można określić opcje jak
$ip
,$hostname
lub coś podobnego.źródło