Trable s UNIXovým zápočťákem, aneb jak jsem vylepšil kill

Pracuju na zápočtovém programu z UNIXu (chatový server a klient, pokud by to někoho zajímalo). Průvodním jevem psaní zápočťáku je, že nedodělané dílko padá a zamrzá. V druhém případě bohužel nepomůže ani osvědčené Ctrl+C (protože server odchytává signál SIGINT, generovaný touto klávesovou zkratkou) a na "zamrzlíka" je nutné použít příkaz kill.

Příkaz kill si jako parametr bere číslo procesu, který má ukončit. To není zrovna příjemné, protože chvíli trvá, než číslo procesu zjistím podle jeho názvu (příkazem ps). Časem mě napadlo si na to napsat vlastní skript (nazval jsem ho poeticky die), který to udělá za mě – jako parametr si tedy bere název spustitelného souboru, vyhledá všechny jeho instance v paměti a zabije je killem. Pro případ, že by se to někomu hodilo, nabízím zdrojový kód:

#!/bin/sh

if [ $# = 1 ]; then
  ps -A | grep $1 | cut -c1-5 | xargs kill
else
  echo "usage: die <process_name>"
fi
Jan 9, 2004 – 1:52

Comments

Blogless
Blogless
Na nekterych Unixech existuje krome prikazu 'kill' taky prikaz 'killall', ktery dela presne tohle (napr. na Linuxu).
David Majda
David Majda
Tak jsem zas jednou objevil objevené :-) No, stane se... Příště radši nejdřív prolezu manuálové stránky a Google, než začnu psát skripty.

Add comment

It is not possible to add comments to posts older than one month.