Programlar işbirliği yaparsa standart bir yöntem vardır. Run kill -- -4242 ebeveyn sürecinin pid olduğu. Bu , işlem 42 (pid'den önceki eksi işareti işlem grubu anlamına gelir) tarafından yönlendirilen işlem grubundaki tüm işlemlere bir sinyal gönderir .
Normalde, python komut dosyanızı bir kabuk isteminden çalıştırırsanız ve basitçe çatallarsa gnuchess, iki işlem aynı işlem grubunda kalmalıdır. Ancak durum böyle görünmüyor, çünkü Ctrl+ tüm ön plan süreç grubuna Cgönderiyor SIGINT.
Gnuchess kendi süreç grubunda olabilir, çünkü kendisini bir oturum lideri yaptı (ama bunu neden yapacağını bilmiyorum) ya da çift çatallı (python gnuchess'i çatallayan bir kabuk çatal). Çift çatal muhtemelen önlenebilir, ancak kodunuzu görmeden nasıl söyleyemem.
gnuchessSürecin pid'ini bulmanın makul ve güvenilir ve POSIX uyumlu bir yolu
gnuchess_pids=$(ps -A -o pid= -o cmd= | awk '$2 ~ /(^|\/)gnuchess$/ {print $1}')
Belirli unix varyantları bunu başarmak için daha iyi yollara sahip olabilir pgrep.
pkillBir işlemi adıyla öldürmek için kullanabilirsiniz , böylece sizinps aux | grep gnuchessvekill -9 PIDsadece olabilirsinizpkill -9 gnuchess