Преимущества запуска приложения как услуги

Иногда я вижу, что некоторые приложения позволяют запускать их как службу в Windows, например Apache HTTP Server позволяет это. Я всегда запускал его как обычное приложение и никогда не испытывал никаких проблем или ограничений.

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

Ответ 1

Наибольшее преимущество при запуске приложения как службы заключается в том, что он будет работать даже после того, как текущий пользователь выйдет из системы (и начнет работать до входа пользователя в систему). Кроме того, службы обычно запускаются под локальной учетной записью "Система", а не работают под логином определенного пользователя (хотя службы могут и часто настроены на запуск под определенным именем пользователя, обычно предназначенным для этой цели).

Как разработчик, вы, вероятно, не заметите большой разницы. Процессы, выполняемые на рабочем столе, обычно легче отлаживать, если что-то не так. Как правило, вы должны настроить приложение для работы в любом режиме, что упрощает его разработку и подходит для развертывания.

Ответ 2

Одна вещь, которая приходит мне на ум, заключается в том, что служба может запускаться до того, как пользователь войдет в систему. Я считаю, что сервис является идеальным способом запуска демона, который обычно не имеет интерфейсного графического интерфейса. Это труднее для пользователя, чтобы он случайно ушел, и его не видно и не в духе.

Ответ 3

Сервисы запускаются, даже если пользователь не вошел в систему. Приложения взаимодействуют с пользователями.

Если вам нужно обоим, вам может потребоваться два компонента: один работает как служба и один взаимодействует с пользователями.