Не могли бы вы попробовать старый трюк с «файлом блокировки»? Проверьте файл: если он не существует, создайте его и запустите; в противном случае выйдите.
Как:
#!/bin/bash
LOCKFILE=/TMP/lockfile
if [ -f "$LOCKFILE" ]; then
echo "Lockfile detected, exiting..."
exit 1
fi
touch $LOCKFILE
while :
do
sleep 30
done
rm $LOCKFILE # assuming an exit point here, probably want a 'trap'-based thing here.
Недостатком является то, что вы должны время от времени очищать файлы блокировки, если сирота осталась позади.
Можете ли вы преобразовать это в 'rc' (или S * / K * скрипт?), Чтобы вы могли указать «один раз» в inittab (или эквивалентный метод - не уверен в MacOS)?
Как то, что описано здесь:
http://aplawrence.com/Unixart/startup.html
EDIT:
Возможно, этот Apple Doc может помочь здесь:
http://developer.apple.com/mac/library/DOCUMENTATION/MacOSX/Conceptual/BPSystemStartup/Articles/StartupItems.html