用于列出启动时启动的服务的命令?
是否有命令列出在启动时运行的服务? 我想它会涉及解析/etc/init.d/
和各种/etc/rc.*
目录。
您只需使用initctl list
shell命令列出/etc/init
的内容,而不是建议的dbus-send
命令。
快速回答是:这取决于你的init
系统。
答案很长:对于Ubuntu的当前版本,您可能混合使用Upstart和SystemV 。 15.04“Vivid Vervet”(以及RHEL / CentOS 7等其他Linux发行版)之后的新版Ubuntu正在转向使用SystemD 。
暴发户
- 新贵文档
列出所有服务:
initctl list
要列出所有Upstart服务并在其上运行initctl show-config
,这个单行可能会有所帮助:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
系统五
- SysV Runlevels文档
列出所有服务:
service --status-all
要么:
# for init scripts: ls /etc/init.d/ # for runlevel symlinks: ls /etc/rc*.d/
SystemD
- 适用于Upstart用户的SystemD
- FedoraProject SystemD文档
- RHEL 7:使用SystemD管理服务
- RedHat:SystemD概述
列出所有服务:
systemctl list-unit-files --type=service
要么:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
/etc/init.d
和/etc/rc.*
目录已被’upstart’init工具取代。 虽然这些目录中的脚本将按预期执行,但在init上运行东西的新方法是由/etc/init/
文件定义的
您可以通过在dbus上查询upstart来列出所有upstart作业:
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
来真正获取服务何时/如果在启动期间启动的详细信息。
像这样:
$ 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的系统imho。
在12.04我们可以使用:
sudo apt-get install chkconfig chkconfig --list
但它在12.10被删除了 。
样本输出:
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
使用gawk:
ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'
样本输出:
$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README README 0,1,2,3,4,5,6,S