У меня есть некоторые процессы, отображаемые как <defunct>
в top
(и ps
). Я свел все к минимуму из реальных сценариев и программ.
In my crontab
:
* * * * * /tmp/launcher.sh /tmp/tester.sh
Содержимое launcher.sh
(которое, конечно же, помечено как исполняемый файл):
#!/bin/bash
# the real script does a little argument processing here
"$@"
Содержимое tester.sh
(которое, конечно же, помечено как исполняемый файл):
#!/bin/bash
sleep 27 & # the real script launches a compiled C program in the background
ps
показывает следующее:
user 24257 24256 0 18:32 ? 00:00:00 [launcher.sh] <defunct>
user 24259 1 0 18:32 ? 00:00:00 sleep 27
Обратите внимание, что tester.sh
не отображается — он закрылся после запуска фонового задания.
Почему launcher.sh
торчит рядом с пометкой <defunct>
? Кажется, это происходит только при запуске cron
, а не когда я запускаю его сам.
Дополнительное примечание: launcher.sh
— это обычный сценарий в системе, на которой он работает, и его нелегко изменить. Другие вещи (crontab
, tester.sh
, даже программу, которую я запускаю вместо sleep
) можно изменить гораздо проще.
<defunct>
называются зомби. - person Teddy   schedule 02.10.2009