Назад | Перейти на главную страницу

Должен ли я лучше запускать программы на переднем плане (вместо этого как демон) или `ожидать fork` при настройке демонов выскочки?

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

Теперь, настраивая выскочку для запуска подобных программ, я могу либо сделать

exec foo -f # run in foreground

или

expect fork
exec foo # automatically runs as a daemon

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

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