Lighttpd - 可以运行,但在 Ubuntu 上未显示为服务

Lighttpd - 可以运行,但在 Ubuntu 上未显示为服务

我有一个小型 Atom 盒子,上面运行着 Xubuntu(带有 Xfce 的 18.04.3 LTS Ubuntu),并且通过调整配置文件中的端口号(以避免与端口 80 上的 Apache 发生冲突)启动并运行了 lighttpd。

我可以使用“service lighttpd start”启动 lig​​httpd,但是当我执行“service --status-all”时,lighttpd 不会显示(显示为 + 或 -)。我可以使用 ps 查看进程,可以使用 netstat 查看端口是否已启动(我可以浏览该端口并查看我的索引页)。

如果可以使用服务命令启动 lig​​httpd,它不应该显示为服务的 --status-all 吗?

是否存在某些设置或地方可以让--status-all 提取关于已配置服务的信息?(某个地方的文本表或其他东西)?

我有一个可以工作的配置,但现在我想:a) 让它像服务一样运行(包括显示在状态查询中)b) 让它随机器自动启动

那么我缺少什么才能实现这些目标呢?

答案1

在 Ubuntu 上(可能还有其他使用 systemd 的发行版),该service二进制文件是一个辅助程序,用于启动 System V init 脚本(来自/etc/init.d)或系统单元. 根据服务二进制文件的手册页

如果 /etc/init.d 中存在与脚本同名的 systemd 单元,则会导致该单元优先于 init.d 脚本。

安装时lighttpd它包括 System V init 脚本和 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二进制文件未显示 systemd 单元的状态。

status您可以在或list-unitsfor 子命令中看到它列出以systemctl供使用:

sudo systemctl list-units

您还可以使用以下方法获取单个单位的状态:

sudo systemctl status lighttpd

相关内容