Warum Prozesse hervorgebracht, die von cron am Ende Karteileichen?

Habe ich einige Prozesse zeigt sich als <defunct> im top (und ps). Ich habe gekochte Dinge nach unten aus der real-Skripte und Programme.

In meinem crontab:

* * * * * /tmp/launcher.sh /tmp/tester.sh

Den Inhalt launcher.sh (das ist natürlich als ausführbar gekennzeichnet):

#!/bin/bash
# the real script does a little argument processing here
"$@"

Den Inhalt tester.sh (das ist natürlich als ausführbar gekennzeichnet):

#!/bin/bash
sleep 27 & # the real script launches a compiled C program in the background

ps zeigt Folgendes:

user       24257 24256  0 18:32 ?        00:00:00 [launcher.sh] <defunct>
user       24259     1  0 18:32 ?        00:00:00 sleep 27

Beachten Sie, dass tester.sh nicht angezeigt-es beendet sich nach dem starten der hintergrund-job.

Warum launcher.sh stick herum, markiert <defunct>? Es scheint nur dies zu tun, wenn es gestartet wird, indem cron - nicht dann, wenn ich es mir selber.

Zusätzlicher Hinweis: launcher.sh ist ein gemeinsames Skript in das system läuft auf, die nicht leicht modifiziert werden. Die anderen Dinge ( crontab , tester.sh auch das Programm, dass ich laufen statt sleep) modiified viel leichter.

InformationsquelleAutor der Frage John Zwinck | 2009-10-01

Schreibe einen Kommentar