Portál AbcLinuxu, 28. října 2025 09:51
#!/bin/bash q=lsof | grep mpg123 for i in q do killall mpg123 sleep 0.1 doneKdyž do terminálu zadám lsof | grep mpg123 vypíše se tak 30 řádků.... Když spustim ten script, tak se killne jen jeden proces, proč? Díky
lsof je list open files, potřebujete třeba pidof mpg123, ten vám vypíše process ids spuštěných mpg123. Spočtete je třeba pidof mpg123 | wc -w. Ale vlastně to vůbec nepotřebujete, protože příkaz killall mpg123 zabije všechny spuštěné mpg123, krom těch na které zrovna defaultní signál -TERM který killall nestačí, ale to jsou výjmečné případy. Podobně můžete pro vypsání použít třeba pgrep (processes grep) který je mocnější a má víc přepínačů, a taky pkill který funguje podobně jako killall ale častěji ho použijte spíš na Mac OS, linuxáci spíš killují-all.
man pkill
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.