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 kill
em. 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