Portál AbcLinuxu, 8. května 2025 15:03

Dotaz: Zabití více procesů

Honza Balák avatar 11.6.2009 01:26 Honza Balák | skóre: 23 | blog: Jaxův linuxový zápisník | Předklášteří
Zabití více procesů
Přečteno: 595×
Odpovědět | Admin
Startuje mi tu několik instancí X serveru. Výpis vypadá takto:
root      6097  4.1  1.6  35568 29888 tty7     SLs+ 01:13   0:12 /usr/bin/X :0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
root      6101  0.2  1.0  23576 18948 tty9     SLs+ 01:13   0:00 /usr/bin/X1 :1 -sharevts -layout seat1 -novtswitch -br -audit 0 -nolisten tcp -novtswitch -auth /var/lib/gdm/:1.Xauth -nolisten tcp vt9
Pokud zadám killall /usr/bin/X nebo killall /usr/bin/X1, tak se nic nestane. Chtěl jsem to teda udělat např. pomocí AWK, ale nějak se s tím nemůžu popasovat. Takový nástřel byl:
ps aux | grep "/usr/bin/X" | grep root | awk '{print $2}'
. Výstup tohoto příkazu je např:
6097
6101
, ale nedaří se mi to dostat do kill -9 (vždy to vezme jen první proces)
<null>
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2009 07:13 selfrule | skóre: 4
Rozbalit Rozbalit vše Re: Zabití více procesů
Odpovědět | | Sbalit | Link | Blokovat | Admin

Na tohle je urcena utilitka xargs, takze by to melo jit necim jako :

ps aux | grep "/usr/bin/X" | grep root | awk '{print $2}' | xargs kill

nepovedlo se mi tam ale propasovat prepinac -9, i tak to ale snad pomuze

11.6.2009 07:16 selfrule | skóre: 4
Rozbalit Rozbalit vše Re: Zabití více procesů

pripadne se mrkni na:

man pkill

je tam moznost killnout procesy urciteho uzivatele a killnout proces jehoz jmeno odpovida predloze

Honza Balák avatar 11.6.2009 09:39 Honza Balák | skóre: 23 | blog: Jaxův linuxový zápisník | Předklášteří
Rozbalit Rozbalit vše Re: Zabití více procesů
Jenže pkill zabíjí jen první proces daného jména. Ideální by bylo nějak rozparsovat výstup pgrepu a každý řádek dát jako argument příkazu kill.
<null>
11.6.2009 09:48 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Zabití více procesů
for process_id in `pgrep pattern` ; do pkill "${process_id}" ; done
Honza Balák avatar 11.6.2009 09:57 Honza Balák | skóre: 23 | blog: Jaxův linuxový zápisník | Předklášteří
Rozbalit Rozbalit vše Re: Zabití více procesů
Super! Díky moc, to je přesně ono.
<null>
11.6.2009 09:59 chochi | skóre: 29 | Praha
Rozbalit Rozbalit vše Re: Zabití více procesů

S timhle neumuzu souhlasit - jeden prikaz pkill pouzivam pravidelne k zabiti radove stovek procesu (teda alespon na Linuxu - CENTOS 5.2 a RHEL AS 4.6), pr:

$ sleep 3600 &
$ sleep 3600 &
$ sleep 3600 &
$ sleep 3600 &
$ ps -ef | grep sleep
chocholj 11815 11704  0 09:53 pts/18   00:00:00 sleep 3600
chocholj 11816 11704  0 09:53 pts/18   00:00:00 sleep 3600
chocholj 11817 11704  0 09:53 pts/18   00:00:00 sleep 3600
chocholj 11818 11704  0 09:53 pts/18   00:00:00 sleep 3600
chocholj 11820 11704  0 09:53 pts/18   00:00:00 grep sleep

$ pkill -9 sleep

[2]   Killed                  sleep 3600
[3]-  Killed                  sleep 3600
[4]+  Killed                  sleep 3600
[1]+  Killed                  sleep 3600
$ ps -ef | grep sleep
chocholj 11823 11704  0 09:53 pts/18   00:00:00 grep sleep

Jinak pokud to chcete pouzit pres ps a xargs tak tohle by melo fungovat:
ps aux | grep "/usr/bin/X" | grep root | awk '{print $2}' | xargs kill -9



 

11.6.2009 09:47 pht | skóre: 48 | blog: pht
Rozbalit Rozbalit vše Re: Zabití více procesů
Odpovědět | | Sbalit | Link | Blokovat | Admin
killall X ?
In Ada the typical infinite loop would normally be terminated by detonation.
11.6.2009 10:35 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Zabití více procesů
Odpovědět | | Sbalit | Link | Blokovat | Admin
, ale nedaří se mi to dostat do kill -9 (vždy to vezme jen první proces)

Tak robíš niečo zle. Pretože kill rozhodne vie zabiť viacero procesov naraz:
pid...
    Specify the list of processes that kill should signal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.