我有一个小型 Atom 盒子,上面运行着 Xubuntu(带有 Xfce 的 18.04.3 LTS Ubuntu),并且通过调整配置文件中的端口号(以避免与端口 80 上的 Apache 发生冲突)启动并运行了 lighttpd。
我可以使用“service lighttpd start”启动 lighttpd,但是当我执行“service --status-all”时,lighttpd 不会显示(显示为 + 或 -)。我可以使用 ps 查看进程,可以使用 netstat 查看端口是否已启动(我可以浏览该端口并查看我的索引页)。
如果可以使用服务命令启动 lighttpd,它不应该显示为服务的 --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-units
for 子命令中看到它列出以systemctl
供使用:
sudo systemctl list-units
您还可以使用以下方法获取单个单位的状态:
sudo systemctl status lighttpd