管理服务启动行为:启用和禁用
在这一步中,你将学习如何配置服务在系统启动时是否自动启动。这对于确保系统重启后所需服务无需手动干预即可使用非常重要。
理解服务启动配置
服务可以配置为在系统启动时自动启动(启用),也可以配置为需要手动启动(禁用)。此配置与服务的当前运行状态无关。
检查服务是否已启用
-
要检查 SSH 服务是否配置为在系统启动时启动:
systemctl is-enabled sshd
输出将是“enabled”(在系统启动时启动)或“disabled”(在系统启动时不启动)。
禁用服务
当你禁用一个服务时,你是在配置它在系统启动时不自动启动:
-
禁用 SSH 服务:
sudo systemctl disable sshd
你应该会看到一条消息,表明符号链接已被移除:
Removed /etc/systemd/system/multi-user.target.wants/ssh.service.
-
验证该服务现在是否已被禁用:
systemctl is-enabled sshd
输出应该是“disabled”。
-
请注意,禁用服务并不会停止当前正在运行的服务。检查当前状态:
systemctl status sshd
即使该服务现在已被禁用,下次系统启动时不会自动启动,但它可能仍然处于活动状态。
启用服务
当你启用一个服务时,你是在配置它在系统启动时自动启动:
-
重新启用 SSH 服务:
sudo systemctl enable sshd
你应该会看到一条消息,表明符号链接已被创建:
Created symlink /etc/systemd/system/multi-user.target.wants/ssh.service → /lib/systemd/system/ssh.service.
-
验证该服务现在是否已启用:
systemctl is-enabled sshd
输出应该是“enabled”。
组合命令
你还可以在一个命令中组合启用/禁用和启动/停止操作:
-
要在一个命令中禁用并停止一个服务:
sudo systemctl disable --now sshd
-
要在一个命令中启用并启动一个服务:
sudo systemctl enable --now sshd
创建服务启动配置参考文件
让我们创建一个包含你所学命令的参考文件:
-
在你的项目目录中创建一个名为 service_boot.txt
的文件:
echo "Service Boot Configuration Commands:" > ~/project/service_boot.txt
echo "Check if a service is enabled: systemctl is-enabled <service_name>" >> ~/project/service_boot.txt
echo "Enable a service to start at boot: sudo systemctl enable <service_name>" >> ~/project/service_boot.txt
echo "Disable a service from starting at boot: sudo systemctl disable <service_name>" >> ~/project/service_boot.txt
echo "Enable and immediately start a service: sudo systemctl enable --now <service_name>" >> ~/project/service_boot.txt
echo "Disable and immediately stop a service: sudo systemctl disable --now <service_name>" >> ~/project/service_boot.txt
-
验证文件内容:
cat ~/project/service_boot.txt
在这一步中,你学习了如何通过启用和禁用服务来管理服务的启动行为。这对于配置哪些服务在系统启动时自动启动至关重要,可确保必要的服务可用,同时避免不必要的服务消耗资源。