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