У меня была эта проблема с фоновым процессом в Mac OS X с использованием StartupItems
. Вот как я это решаю:
Если я сделаю sudo ps aux
, я увижу, что mytool
запущен.
Я обнаружил, что (из-за буферизации), когда Mac OS X выключается, mytool
никогда не передает вывод команде sed
. Однако если я выполню sudo killall mytool
, mytool
передаст вывод команде sed
. Поэтому я добавил stop
случай к StartupItems
, который выполняется, когда Mac OS X завершает работу:
start)
if [ -x /sw/sbin/mytool ]; then
# run the daemon
ConsoleMessage "Starting mytool"
(mytool | sed .... >> myfile.txt) &
fi
;;
stop)
ConsoleMessage "Killing mytool"
killall mytool
;;