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
9. 1. 2004, 1:52

RSS komentářů k článku Komentáře


Blogless

26. 1. 2004, 0:05

Na nekterych Unixech existuje krome prikazu 'kill' taky prikaz 'killall', ktery dela presne tohle (napr. na Linuxu).

david.majda@seznam.cz

David Majda

26. 1. 2004, 0:27

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.


Přidat komentář

Komentáře k článkům starším než měsíc jsou automaticky uzavřeny. Pokud mi chcete něco sdělit, využijte sekci kontakt.