У меня есть служба, скажем, foo, написанная на C++, которая работает от имени пользователя root. Есть обычный скрипт, /etc/init.d/foo start|stop|restart.
В определенное время foo нужно перезагрузить себя. Обычно после завершения обновления. Но делать такие вещи, как:
system("/etc/init.d/foo restart")
не работает, поскольку, как только перезагрузка убивает foo, очевидно, что вызов system() также уничтожается, а сценарий перезагрузки никогда не выполняется до конца.
Есть ли другой вызов, который я могу использовать вместо system(), который выполняется асинхронно как одноуровневый по отношению к вызывающему процессу, вместо того, чтобы создавать синхронный дочерний процесс?
Спасибо!