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

Lighttpd - может быть запущен, но не отображается как служба в Ubuntu

У меня есть небольшой блок Atom, на котором я запускаю Xubuntu (18.04.3 LTS Ubuntu с Xfce), и у меня есть lighttpd, и я собираюсь настроить номер порта в файле conf (чтобы избежать столкновения с Apache на порт 80).

Я могу запустить lighttpd с помощью 'service lighttpd start', но когда я использую 'service --status-all', lighttpd не отображается (как + или -). Я могу ps и видеть процесс, я могу netstat и видеть, что мой порт работает (и я могу перейти к этому порту и увидеть свою страницу индекса).

Разве lighttpd не должен отображаться как --status-all службы, если его можно запустить с помощью служебной команды?

Есть ли какой-то параметр или место, где --status-all извлекает информацию о том, что является настроенной службой? (текстовая таблица где-то или что-то в этом роде)?

У меня есть работающая конфигурация, но теперь я бы хотел: а) заставить ее вести себя как служба (включая отображение в запросах состояния) б) заставить ее автоматически запускаться вместе с машиной

Так что же мне не хватает, чтобы это произошло?

В Ubuntu (и, вероятно, в других дистрибутивах, использующих systemd) service двоичный файл - это помощник, запускающий сценарий инициализации System V (из /etc/init.d) или блок systemd. Согласно страница руководства для двоичного файла службы:

Наличие модуля systemd с тем же именем, что и сценарий в /etc/init.d, приведет к тому, что модуль будет иметь приоритет над сценарием init.d.

При установке lighttpd он включает как сценарий инициализации System V, так и модуль systemd:

ubuntu@primary:~$ dpkg -S /lib/systemd/system/lighttpd.service
lighttpd: /lib/systemd/system/lighttpd.service

ubuntu@primary:~$ dpkg -S /etc/init.d/lighttpd 
lighttpd: /etc/init.d/lighttpd

Что происходит в вашем случае, вы действительно запустили модуль systemd. В service binary не показывает статус модулей systemd.

Вы можете увидеть его в списке status или list-units для подкоманды для systemctl с помощью:

sudo systemctl list-units

Вы также можете получить статус отдельного объекта, используя:

sudo systemctl status lighttpd