Стоит ли мне явно запускать программы на переднем плане (а не как демон) или «ожидать форк» при настройке демонов upstart?

Стоит ли мне явно запускать программы на переднем плане (а не как демон) или «ожидать форк» при настройке демонов upstart?

Многие программы можно запускать либо в режиме демона (что обычно используется по умолчанию), либо явно запускать их в фоновом режиме с помощью флага, например -f.

Теперь при настройке upstart для запуска таких программ я могу сделать следующее:

exec foo -f # run in foreground

или

expect fork
exec foo # automatically runs as a daemon

Есть ли причина выбрать один из них? Кажется, что проще запустить все на переднем плане и позволить upstart управлять процессами, но есть ли у этого недостатки?

решение1

Я настоятельно предпочитаю запускать вещи на переднем плане; это позволяет избежать любых осложнений, которые могут возникнуть из-за процесса демонизации (например, потеря upstart следа за долго работающим процессом демона). Единственным исключением из этого является небольшое меньшинство демонизирующих программ, которые имеют неприятную привычку интерпретировать «пожалуйста, запустите на переднем плане» как «пожалуйста, запустите в каком-то плохо работающем режиме отладки» и делают что-то глупое, например, запускают только один поток или не порождают дочерние процессы, или что-то в этом роде.

Связанный контент