У меня есть некоторые процессы, которые отображаются как <defunct> в top (и ps). Я откинулся от реальных сценариев и программ.
В моем crontab:
* * * * * /tmp/launcher.sh /tmp/tester.sh
Содержимое launcher.sh (которое, конечно, отмечено исполняемым):
#!/bin/bash
# the real script does a little argument processing here
"[email protected]"
Содержимое 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 является общим script в системе, на которой выполняется эта операция, что не так легко изменить. Другие вещи (crontab, tester.sh, даже программа, которую я запускаю вместо sleep), могут быть легко модифицированы.