Answers:
快速的答案是:这取决于您的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
列出所有服务:
service --status-all
要么:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
列出所有服务:
systemctl list-unit-files --type=service
要么:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
不会显示是否已启用服务以在启动时启动,至少在Ubuntu 16上不会。它显示服务当前是否正在运行。
sudo service --status-all
获得所有服务才能显示出来。当我仅以service --status-all
非root用户身份运行时,其中的一些人被隐藏了。
systemctl
,service
,initctl
...),因为它们通常被认为是系统管理的命令。
在/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
以反映您的新贵版本。此命令适用于我的清醒安装。
initctl list
比此dbus命令好得多。不过,我想将此答案留在此处以供参考(而不是完全删除)。
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的系统imho上更可取。
在12.04,我们可以使用:
sudo apt-get install chkconfig
chkconfig --list
样本输出:
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 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)
除了以下系统服务和脚本:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
也可能有自动启动应用程序,例如:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
使用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