У меня есть скрипт, который будет отслеживать процесс, и если этот процесс умрет, он возродит его. Я хочу, чтобы сценарий отслеживания также убивал процесс, если ему было сказано сделать это, предоставив сценарию отслеживания сигтерм (например.). Другими словами, если я уничтожу скрипт отслеживания, он также должен убить процесс, который он отслеживает, больше не возрождаться и выходить.
Объединив несколько сообщений (которые я считаю лучшими практиками, например, не используйте файл PID), я получаю следующее:
#!/bin/bash
DESC="Foo Manager"
EXEC="python /myPath/bin/FooManager.pyc"
trap "BREAK=1;pkill -HUP -P $BASHPID;exit 0" SIGHUP SIGINT SIGTERM
until $EXEC
do
echo "Server $DESC crashed with exit code $?. Restarting..." >&2
((BREAK!=0)) && echo "Breaking" && exit 1
sleep 1
done
Итак, теперь, если я запущу этот скрипт в одном файле xterm. А затем в другом xterm я отправляю скрипт примерно так:
kill -HUP <tracking_script_pid> # Doesn't work.
kill -TERM <tracking_script_pid> #Doesn't work.
Сценарий отслеживания не заканчивается или что-то еще. Если я запущу FooManager.pyc из командной строки, он умрет на SIGHUP и SIGTERM. В любом случае, что я мог сделать здесь неправильно, и, возможно, есть совершенно другой способ сделать это?
Благодарю.