根据不同的启动系统,查找启动服务的列表会有所不同。Systemd是主要新版本Linux发行版的默认启动系统。
如果您的系统使用systemd系统管理器,您可以使用以下命令列出所有服务。
$ sudo systemctl list-unit-files --type=service
如上所述,这个命令显示了Linux系统中所有服务的列表(包括系统启动时启用和禁用的服务)。你可以通过查看上面输出的STATE部分下的内容来验证。启动时启动的服务被标记为启用,未启动的服务被标记为禁用。
要只列出系统启动时已启用的服务,运行以下命令。
$ sudo systemctl list-unit-files --type=service --state=enabled --all
要在系统启动时列出所有禁用的服务,请运行以下命令。
$ sudo systemctl list-unit-files --type=service --state=disabled --all
就像我已经说过的,一些旧的Linux发行版可能会使用SysV或Upstart作为他们的默认启动系统。
如果你的系统使用sysv,运行以下命令来列出所有服务。
$ sudo service --status-all
在输出列表中,+表示服务正在运行,-表示服务已经停止。如果在输出中看到?,则表示服务状态无法确定。
要列出所有在启动时启用的服务,请运行。
$ sudo chkconfig --list
此命令将列出每个运行级别上每个服务的状态。
在上面命令的输出结果中,“ on”表示服务在引导时启动。
您还可以在不同的运行级别查看特定服务的状态,如下所示:
$ sudo chkconfig --list httpd
如果您的Linux系统使用upstart,请运行以下命令以列出所有启动服务:
$ sudo initctl list
上面的命令将显示所有会话作业。
如果要显示所有系统作业,请运行:
$ sudo initctl --system list
要列出所有服务并在每个运行级别显示其状态,请运行:
$ sudo initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
要显示特定服务的状态,请运行以下命令:
$ initctl show-config <service_name>
禁用启动服务
您在计算机上安装的应用程序越多,系统启动所需的时间就越长。为了缩短Linux系统的启动时间,您需要找到不需要的服务并将其禁用。
例如,如果您不希望unattended-upgrades.service在启动时加载调用的服务,则可以使用以下命令将其禁用:
$ sudo systemctl disable --now unattended-upgrades.service
要了解在启动时是否启用了服务,请运行:
$ sudo systemctl is-enabled <service-name>