Powiedz, że chcę zabić każdy proces zawierający słowo amarok. Mogę wydrukować polecenia, które chcę wykonać. Ale jak mam sprawić, by powłoka je wykonała. to znaczy.
ps aux | grep -ie amarok | awk '{print "kill -9 " $2}'
Output:
kill -9 3052
kill -9 3071
kill -9 3076
kill -9 3077
kill -9 3079
kill -9 3080
kill -9 3082
kill -9 3083
kill -9 3084
kill -9 3085
kill -9 3086
kill -9 3087
kill -9 3088
kill -9 3089
kill -9 4031
shell
command-line
kill
PuercoPop
źródło
źródło
| sh -x
po pozostałej części wiersza poleceń?kill -9
w procesie patrz [zarządzanie procesem] [1] [1]: mywiki.wooledge.org/ ... ...amarokx
proces? I pkill vi, zabija,supervisorctl
który zawiera słowo „vi”.-9
jest dość nieprzydatny - czy są lepsze informacje na temat tego, dlaczego ludzie nie powinni go używać? Mówi tylko: „nie strzelaj do ludzi, którzy go używają”; ale wszystko, co kiedykolwiek widziałem wszędzie, tokill -9 {pid}
to, jak coś zabić ...Odpowiedzi:
Z
man 1 pkill
Co oznacza na przykład, jeśli widzimy te linie w
ps aux
:Możemy zabić ich wszystkich za pomocą
-f
opcji pkill :źródło
-9
do końca!httpdx
proces? I pkill vi, zabija,supervisorctl
który zawiera słowo „vi”.-i
, takich jakpkill -fi wine
. Aby zweryfikować przed i po, użyjps uax | grep -i wine
.xargs (1): xargs - konstruuj listy argumentów i uruchamiaj narzędzie. Przydatne, gdy chcesz potokować argumenty do czegoś takiego
kill
lub podobnegols
.źródło
ps aux | grep -ie amarok | grep -v grep | awk '{print $2}' | xargs kill -9
(grep -v
oznaczagrep --invert
)posługiwać się
pgrep
źródło
pkill -9 amarok
kill -9 $(pgrep -f amarok)
Bezpiecznym sposobem na to jest:
źródło
-l
flagę. Właśnie aliaspkill
do,pkill -fl
więc mogę uruchomić coś takiego,pkill jboss
a to wypluje proces, który właśnie zabił.amarokx
proces? I pkill vi, zabija,supervisorctl
który zawiera słowo „vi”.pkill: invalid option -- 'l'
- pkill z procps-ng 3.3.12Myślę, że to polecenie killall jest dokładnie tym, czego potrzebujesz. Polecenie to opisuje się jako „zabijaj procesy według nazwy”. Jest łatwe w użyciu. Na przykład
To polecenie zabije cały proces Chrome. Oto link dotyczący polecenia killall
http://linux.about.com/library/cmd/blcmdl1_killall.htm
Mam nadzieję, że to polecenie może ci pomóc.
źródło
ps aux
jest wyjściepkill -x dokładnie pasuje do nazwy procesu.
pkill -f jest podobny, ale umożliwia stosowanie wzorca wyrażeń regularnych.
Zauważ, że pkill bez innych parametrów (np. -X, -f) pozwoli na częściowe dopasowanie nazw procesów. Zatem „pkill amarok” zabiłby amaroka, amaroka Bananę, bananaamaroka itp.
Chciałbym, żeby -x było zachowaniem domyślnym!
źródło
amarokx
proces? I pkill vi, zabija,supervisorctl
który zawiera słowo „vi”.Jeśli chcesz wykonać dane wyjściowe polecenia, możesz je wstawić do środka
$(...)
, jednak w przypadku konkretnego zadania spójrz na poleceniakillall
ipkill
.źródło
Możesz również ocenić swoje wyniki jako podproces, otaczając wszystko tykami lub umieszczając je wewnątrz $ ():
źródło
spróbuj kill -s 9
ps -ef |grep "Nov 11" |grep -v grep | awk '{print $2}'
Aby zabić procesy z 11 listopada lub kill -s 9ps -ef |grep amarok|grep -v grep | awk '{print $2}'
Aby zabić procesy zawierające słowo amarokźródło
Może dodanie poleceń do pliku wykonywalnego, ustawienie uprawnień + x, a następnie wykonanie?
źródło
Jeśli używasz cygwina lub jakiejś minimalnej powłoki, której brakuje
killall
, możesz po prostu użyć tego skryptu:killall.sh - Kill według nazwy procesu.
Stosowanie:
źródło
kill: invalid argument f