Запуск службы до входа пользователя в систему

Вопрос Noob впереди. Я запускаю debian 4.8.4-1 x64 vanilla на виртуальной виртуальной машине VM на хосте Win 7 x64. Цель установки – служить сервером для службы дозвуковой потоковой передачи музыки, которая предлагает веб-интерфейс на порту 4040. Служба работает как пользовательский «дозвуковой», который является стандартным пользователем, который может войти в систему и иметь домашний каталог (не конечно, если это имеет значение.)

Когда я запускаю VM с хоста Windows, машина загружается и дает мне приглашение для входа. На данный момент я могу получить доступ к веб-серверу apache на порту 80 с других компьютеров, но я не могу получить доступ к дозвуковой службе на порту 4040. Как только я вхожу в систему дозвукового пользователя, доступна дозвуковая служба.

Очевидно, что дозвуковая служба запускается только после входа пользователя в систему, а apache запускается до входа в систему. В чем разница, и как установить дозвуковое обслуживание для запуска до входа в систему? Это даже правильный подход, или я должен автоматически регистрировать пользователя?

Я ищу способ, который работает, и предпочтительнее идиоматично для философии Linux. Спасибо за помощь!

One Solution collect form web for “Запуск службы до входа пользователя в систему”

Предполагая, что имя службы является subsonic , если вы запустили systemctl status subsonic.service и ошибок нет, то subsonic служба запускается как системная служба, и в этом случае этот ответ не поможет.

Однако, если вы получаете ошибку там, но вместо этого запустите systemctl --user status subsonic.service и не получите никаких ошибок, значит это означает, что служба запускается под экземпляром пользователя systemd , а первая строка вывода указывает, где файл службы хранится. Это означает, что для запуска службы пользователь должен сначала войти в систему.

Если вы хотите, чтобы служба запускалась для всех пользователей, независимо от того, зарегистрирован ли фактический пользователь или нет, переместите файл службы в /etc/systemd/system (см. man systemd.unit для списка системных путей). Кроме того, если вы хотите, чтобы служба запускалась под определенным пользователем (а не под root ), вам нужно добавить User=subsonic в раздел [Service] файла (см. man systemd.service ).

После перемещения этого файла при запуске systemctl status subsonic.service должен привести к некоторому выводу (возможно, что служба неактивна, но загружена) и запущена система systemctl --user status subsonic.service должна привести к ошибке.

  • systemd stdout протоколирование для длинных строк
  • поиск systemd unit «владение» запущенным процессом демонов
  • Получение услуги запускается автоматически, когда другой запускается
  • таймер systemd OnUnitActiveSec vs OnCalendar для замены anacron
  • Systemd с rtorrent в tmux
  • использование таймеров systemd вместо cron
  • Сделать opensuse 13.2 принимать удаленный журнал?
  • перезапустить службу после установки устройства
  • SELinux предотвращает запуск команды при использовании systemd на Fedora 25
  • Использование mate desktop без systemd
  • Systemd отправляет сигнал выхода на обслуживание при запуске
  • Linux и Unix - лучшая ОС в мире.