/etc/init.d/
和各种/etc/rc.*
目录。#1 楼
您可以简单地使用initctl list
shell命令列出/etc/init
的内容,而不是建议的dbus-send
命令。#2 楼
快速答案是:这取决于您的init
系统。长答案是:对于当前版本的Ubuntu,您可能混合使用Upstart和SystemV。 15.04“ Vivid Vervet”(以及RHEL / CentOS 7等其他Linux发行版)之后的较新版本的Ubuntu正在迁移使用SystemD。Upstart
Upstart文档
要列出所有服务:
sudo initctl list
要列出所有Upstart服务并对其运行
initctl show-config
,这种单线可能会有所帮助:sudo initctl list | awk '{ print }' | xargs -n1 initctl show-config
System V
SysV运行级别文档
列出所有服务:
sudo service --status-all
OR:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
SystemD
用于新手用户的SystemD
FedoraProject SystemD文档
RHEL 7:使用SystemD管理服务
RedHat:SystemD概述
要列出所有服务:
sudo systemctl list-unit-files --type=service
OR:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
评论
这应该是公认的答案。
– sjas
16 Dec 6'在13:02
service --status-all不会显示是否已启用服务以在启动时启动,至少不能在Ubuntu 16上启动。它显示了服务当前是否正在运行。
–通配符
19年4月18日在21:35
我必须sudo service --status-all才能显示所有服务。当我仅在非root帐户上运行service --status-all时,有一些隐藏了。
–充实
19年5月23日在16:30
@Phlucious:感谢您提及。我以为众所周知,这些命令通常以root身份运行(systemctl,service,initctl ...),因为它们通常被视为系统管理命令。
– TrinitronX
19年6月11日在19:56
service --status-all此命令也可以在我的debian框中使用
–阿伦
20'八月14'4:53
#3 楼
/etc/init.d
和/etc/rc.*
目录已被“ upstart
”初始化工具所取代。尽管这些目录中的脚本将按预期执行,但是用于初始化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
才能反映新贵的版本。此命令适用于我的透明安装。评论
@Eric H:能否将下面的答案设置为正确的-initctl列表比此dbus命令好得多。我想在这里留下这个答案供参考(而不是完全删除)。
–杰里米·科尔(Jeremy Kerr)
2011-2-24在4:48
#4 楼
如果您想用图形化的方式来表示服务和启动所需的时间,请尝试:apt-get install bootchart
#5 楼
请使用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的系统imho上更可取。
评论
这是正确的答案。我不知道为什么所有错误和不完整的答案都受到如此强烈的反对。
–塞林
16年8月8日在15:35
这对于使用SysV的人不起作用,我同意这是一个不错的答案,但还不完整。
–加布里埃尔·内托(Gabriel Netto)
16 Dec 12'在12:59
#6 楼
对于Ubuntu 18.04,请使用:systemctl list-units --type=service
而不是:
initctl
从Ubuntu 16.04起,
initctl
用systemd
代替。https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles(FR_fr)
(如果可以帮助@ sanjay-manohar)
#7 楼
在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
评论
在Ubuntu中不起作用。 packages.ubuntu.com/…
– A.B.
15年4月24日在7:21
@ A.B。谢谢你让我知道!如今,拒绝投票的人很少发表评论:它需要勇气,并允许我学习。更新了适用的版本。
– Ciro Santilli郝海东冠状病六四事件法轮功
15年4月24日在7:58
精确地:packages.ubuntu.com/precise/chkconfig
– Ciro Santilli郝海东冠状病六四事件法轮功
15年4月24日在7:59
#8 楼
除了以下系统服务和脚本:/etc/init.d//lib/systemd/system//etc/systemd/system/
也可能还有AutoStart应用程序,例如:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
#9 楼
使用gawk:ls -l /etc/rc*.d/* | gawk 'match($ ls -l /etc/rc*.d/* | gawk 'match(q4312078q, /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
, /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)}}'
示例输出:
q4312078q
评论
在Ubuntu 18.04中可以使用吗?我收到“ initctl:找不到命令”(以bash格式)
– Sanjay Manohar
19年8月15日在19:12
在Ubuntu 19.10上找不到initctl列表
–人头马Hosseinkhan Boucher
19/12/18在11:55
@RémyHosseinkhanBoucher有关Ubuntu的最新版本askubuntu.com/a/1167921/988056
–AppyGG
20 Mar 3 '20 at 8:41