当前位置: 首页>>技术教程>>正文


列出启动时启动的服务的命令?

, ,

问题描述

有没有列出启动时运行的服务的命令?我想它会涉及解析/etc/init.d/和各种/etc/rc.*目录。

最佳解决方法

您只需使用initctl list shell命令列出/etc/init的内容,而不是建议的dbus-send命令。

次佳解决方法

快速回答是:这取决于您的init系统。

漫长的回答是:对于当前版本的Ubuntu,您可能会混合使用UpstartSystemV。在15.04 “Vivid Vervet”(以及其他Linux发行版,如RHEL /CentOS 7)之后的更新版本的Ubuntu正在转向使用SystemD

Upstart

列出所有服务:

initctl list

要列出所有Upstart服务并在其上运行initctl show-config,此one-liner可能会有所帮助:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

系统V

列出所有服务:

service --status-all

要么:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

列出所有服务:

systemctl list-unit-files --type=service

要么:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

第三种解决方法

/etc/init.d/etc/rc.*目录已被’upstart‘初始化工具取代。尽管这些目录中的脚本将按预期执行,但在init上运行事物的新方法由/etc/init/中的文件

您可以通过dbus查询新贵列出所有新贵工作:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

您可能需要更改0_6以反映您拥有的新贵版本。这个命令适用于我的清理安装。

第四种方法

如果你想要一个很好的服务图形表示和启动尝试的时间:

apt-get install bootchart

第五种方法

Id使用initctl show-config <servicename>真正了解何时/如果您的服务将在启动过程中启动。

像这样:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

或者对于NFS4 idmap-daemon:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig只适用于基于RedHat的系统。

第六种方法

在12.04我们可以使用:

sudo apt-get install chkconfig
chkconfig --list

但它是为什么在Ubuntu中不再提供chkconfig?

示例输出:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/538.html,未经允许,请勿转载。