是否有命令可以列出启动时运行的服务?我想这会涉及解析/etc/init.d/
和各种/etc/rc.*
目录。
答案1
简单的回答是:这取决于您的init
系统。
长话短说:对于当前版本的 Ubuntu,你可能混合使用了暴发户, 和系统V. 15.04“Vivid Vervet”之后的 Ubuntu 版本(以及其他 Linux 发行版,如 RHEL/CentOS 7)正在转向使用系统D。
暴发户
列出所有服务:
sudo initctl list
要列出所有 Upstart 服务并initctl show-config
在其上运行,下面一行代码可能会有帮助:
sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
系统 V
列出所有服务:
sudo service --status-all
或者:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
系统D
列出所有服务:
sudo systemctl --all list-unit-files --type=service
或者:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
答案2
您可以简单地使用initctl list
shell 命令来列出内容,/etc/init
而不是建议的dbus-send
命令。
答案3
对于 Ubuntu 18.04,使用:
systemctl list-units --type=service
代替initctl
。
自 Ubuntu 16.04 起,initctl
已被取代systemd
(来源(法语:
如果可以的话帮助@sanjay-manohar。
答案4
如果您想要一个漂亮的图形来表示服务和启动所需的时间,请尝试:
sudo apt install bootchart
对于 systemd(自 16.04 起)尝试systemd-bootchart反而:
sudo apt install systemd-bootchart