(および)のよう<defunct>に表示されるプロセスがいくつかあります。私は実際のスクリプトとプログラムから物事を煮詰めました。topps
私の中で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)ははるかに簡単に変更することができます。