Answers:
我假设您有一个使用树莓派的Raspberry,据我所知,该树莓还没有转向systemd。在这种情况下,答案如下。
编辑:对于systemd(Jessie或更高版本),请参阅底部。
首先,您可以通过以下命令确定当前正在运行的系统:
sudo service --status-all
您将获得类似以下的列表:
[ + ] triggerhappy
[ + ] udev
[ ? ] udev-mtab
[ ? ] umountfs
[ ? ] umountnfs.sh
[ ? ] umountroot
[ - ] urandom
[ + ] vsftpd
[ + ] weewx
[ - ] x11-common
该+的显示服务运行时,-'s服务不运行时,?的服务,不允许状态为可能的命令:他们大多不需要运行所有的时间命令,只是偶尔为之。
回到您的问题,您需要了解Linux中的runlevel。运行级别(0-6 + S)标识可能/必须运行哪些服务。引导顺序从初始运行级别开始(在我的Raspberry 中的/ etc / inittab中指定)
# The default runlevel.
id:2:initdefault:
该行将其标识为2,然后进入发行版标准最终运行级别(从2到5)。您可以通过以下命令识别当前的运行级别
# runlevel
N 2
(就我而言,是无头服务器)。其他运行级别是(同样来自é/ etc / inittab *):
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.
单个用户(1)通常也被标识为S。
在正常引导中,因此从2开始,直到5。要查找以此过程启动的服务,请发出以下命令:
# grep -nrI Default-Start /etc/init.d
umountroot:7:# Default-Start:
checkroot.sh:8:# Default-Start: S
kbd:6:# Default-Start: S
isc-dhcp-server:11:# Default-Start: 2 3 4 5
mountkernfs.sh:7:# Default-Start: S
hostname.sh:7:# Default-Start: S
mountnfs.sh:7:# Default-Start: S
halt:6:# Default-Start:
dphys-swapfile:20:# Default-Start: 2 3 4 5
bootlogs:7:# Default-Start: 1 2 3 4 5
rc.local:6:# Default-Start: 2 3 4 5
hostapd:9:# Default-Start: 2 3 4 5
keyboard-setup:8:# Default-Start: S
lightdm:7:# Default-Start: 2 3 4 5
procps:11:# Default-Start: S
mysql:9:# Default-Start: 2 3 4 5
single:6:# Default-Start: 1
vsftpd:7:# Default-Start: 2 3 4 5
samba:7:# Default-Start: 2 3 4 5
mountall.sh:6:# Default-Start: S
weewx:20:# Default-Start: 2 3 4 5
umountnfs.sh:7:# Default-Start:
triggerhappy:6:# Default-Start: 2 3 4 5
ifplugd:24:# Default-Start: 2 3 4 5
alsa-utils:9:# Default-Start: S
bootmisc.sh:7:# Default-Start: S
sendsigs:6:# Default-Start:
console-setup:7:# Default-Start: S
nfs-common:7:# Default-Start: 2 3 4 5 S
checkroot-bootclean.sh:6:# Default-Start: S
rsyslog:7:# Default-Start: 2 3 4 5
x11-common:7:# Default-Start: S
mountdevsubfs.sh:7:# Default-Start: S
cron:10:# Default-Start: 2 3 4 5
mountnfs-bootclean.sh:6:# Default-Start: S
mountall-bootclean.sh:6:# Default-Start: S
screen-cleanup:11:# Default-Start: S
udev:6:# Default-Start: S
ssh:7:# Default-Start: 2 3 4 5
haveged:8:# Default-Start: 2 3 4 5
hwclock.sh:26:# Default-Start: S
plymouth:9:# Default-Start: 2 3 4 5
motd:7:# Default-Start: 1 2 3 4 5
killprocs:6:# Default-Start: 1
networking:6:# Default-Start: S
fake-hwclock:9:# Default-Start: S
udev-mtab:6:# Default-Start: S
apache2:6:# Default-Start: 2 3 4 5
reboot:6:# Default-Start:
umountfs:6:# Default-Start:
plymouth-log:9:# Default-Start: S
openvpn:11:# Default-Start: 2 3 4 5
kmod:8:# Default-Start: S
ntp:7:# Default-Start: 2 3 4 5
rpcbind:9:# Default-Start: S 2 3 4 5
urandom:6:# Default-Start: S
rmnologin:6:# Default-Start: 2 3 4 5
checkfs.sh:7:# Default-Start: S
sudo:8:# Default-Start: 2 3 4 5
mtab.sh:6:# Default-Start: S
dbus:6:# Default-Start: 2 3 4 5
rsync:8:# Default-Start: 2 3 4 5
这将在/etc/init.d/中的所有文件中打印以Default-Start开头的行,该行用于保存标识各种服务的文件。有问题的行标识了要在其中启动每个服务的运行级别。如果服务在运行级别N处启动,则当系统前进到N + 1时,不需要再次启动它,但是如果发现未运行,则将其启动。
这使您对启动服务的不同阶段有一个准确的了解。但是,相同的运行中,该行所需的启动,应该启动定义有问题的服务,硬件和软件的依赖关系,即该服务必须运行,并且应该被检查的服务之前运行。如果没有“必需启动”服务,则相关服务将失败,而如果没有“应启动”服务,则将不会出现一般故障,可能只是缺少某些有用的功能。停止时必须停止和应该停止时也会发生同样的情况。
SYSTEMD:
列出所有服务的命令是
systemctl list-unit-files
这会吐出很多信息。要选择所有启用的服务,即在启动时启动的服务,只需grep上面的命令,如下所示:
systemctl list-unit-files | grep enabled
我更喜欢此命令而不是systemctl list-units:区别在于,此命令仅显示操作系统在内存中的服务=操作系统认为需要的服务),而systemctl list-unit-files将显示所有已安装的服务,包括那些已安装的服务。被屏蔽的(即那些应该永远不会启动,甚至不会手动启动的),以及那些不会被激活的,称为static。换句话说,我建议的命令比仅列出活动服务的命令更全面。
注意:systemd与以前的init系统有很大不同。特别是,它没有运行级别,但有target。由于兼容性原因,运行级别仍然存在,可以通过列出所有可用目标来将其视为特定目标
systemctl list-unit-files --type=target
虽然您可以通过以下方式查看当前目标
$ systemctl get-default
graphical.target
有关更多信息,您可以阅读DigitalOcean的出色介绍页。
为了在Raspberry Pi上进行简单的启动服务管理,我推荐使用工具rcconf
。它使您可以轻松地在中打开/关闭服务/etc/init.d/
。您还可以查看它们是否已启用并将在启动时运行。
安装工具
sudo apt-get install rcconf
并且与文本UI一起使用非常简单
sudo rcconf
rcconf
告诉您是否启用了服务。我编辑了答案,以明确地说该工具显示了这种特定类型的信息。
systemd
,但此答案似乎仍然有效。