Многие программы позволяют запускать либо в режиме демона (который обычно используется по умолчанию), либо явно запускать его на переднем плане с таким флагом, как -f
.
Теперь, настраивая выскочку для запуска подобных программ, я могу либо сделать
exec foo -f # run in foreground
или
expect fork
exec foo # automatically runs as a daemon
Есть ли причина предпочесть одно другому? Кажется, что проще запустить все на переднем плане и позволить выскочке обрабатывать процессы, но есть ли у этого обратная сторона?
Я очень предпочитаю запускать объекты на переднем плане; это позволяет избежать каких-либо осложнений, которые могут возникнуть в процессе демонизации (например, выскочка, теряющая отслеживание долго выполняющегося процесса демона). Единственным исключением из этого правила является небольшая часть демонизирующих программ, которые имеют неприятную привычку интерпретировать «пожалуйста, запускайте на переднем плане» как «пожалуйста, запускайте в каком-то плохо работающем режиме отладки» и делают что-то глупое, например запуск только одного потока. , или не порождайте детей, или что-то в этом роде.