Nie wiesz, jak używać supervisord
, ale z pkill
możesz użyć opcji -P
, aby zabić od procesu nadrzędnego do wszystkich dzieci. Oto drzewa procesów (zaczynając od mojego działającego demona ssh).
$ pstree -a -p 1792
sshd,1792
├─sshd,27150
│ └─sshd,27153
│ └─zsh,27154
│ └─test.sh,27325 ./test.sh
│ └─cat,27326
└─sshd,27182
└─sshd,27184
└─zsh,27185
└─pstree,27357 -a -p 1792
W jednej sesji Mam skrypt test.sh
z pid 27325, aw drugiej biegnę polecenia pstree -a -p 1792
(bo sshd
miał pid 1792)
A potem biegnę pkill -TERM -P 27325
:
$ pstree -a -p 1792
sshd,1792
├─sshd,27150
│ └─sshd,27153
│ └─zsh,27154
└─sshd,27182
└─sshd,27184
└─zsh,27185
└─pstree,27387 -a -p 1792
Ta odpowiedź została zasadniczo rephrased od tej drugiej odpowiedzi na stackoverflow: https://stackoverflow.com/a/392155/263969
Może powinien być na [su]? –