Отправка SIGTERM в `script` приводит к процессу зомби
Я внедряю простую систему для удаленного запуска заданий через SSH. Моя цель - запустить работу в screen
и запишите все свои выходные данные, используя script
и загрузите машинопись на сервер, когда работа завершится. Я, однако, борюсь с обработкой SIGTERM должным образом (например, когда удаленный компьютер собирается выключиться), так как script
процесс не завершается при получении SIGTERM (вместо этого процесс, который выполняется внутри script
становится зомби).
Примите следующую команду:
script -e -q -c 'ping www.google.com'
С помощью killall -TERM script
отправить сигнал SIGTERM на script
процесс, кажется, передает сигнал SIGTERM ping
(который заканчивается), однако, это становится процессом зомби и script
не заканчивается:
> ps -aux | grep ping
karel 16460 0.0 0.0 10852 2732 pts/2 S+ 12:57 0:00 script -e -q -c ping www.google.com
karel 16461 0.1 0.0 0 0 ? Zs 12:57 0:00 [ping] <defunct>
Если я правильно понимаю, ping
процесс зомби, потому что родитель script
процесс все еще наблюдает за этим. Тем не менее, возможно ли сделать script
перестать наблюдать за процессом и грациозно прекратить (одновременно стирая машинку)?