9.linux服务与守护进程控制
Linux 服务与守护进程控制
1. 服务与守护进程基础
- 服务 (Service) 或 应用程序 (Application) 在启动后会创建进程。当这些进程在后台持续运行时,它们就变成了 守护进程 (Daemon)。
- 大多数服务都是守护进程。
- 服务由
systemctl命令控制。 systemctl是一个systemd工具,负责控制systemd系统和服务管理器。systemd是一系列系统管理守护进程、工具和库的集合,它取代了 System V init 守护进程。systemd是大多数守护进程的父进程。- 控制服务的命令是
systemctl。
2. systemctl 命令详解与使用场景
检查系统是否安装了 systemd:
1
systemctl --version

检查 systemd 是否正在运行:
1
ps -ef | grep system

检查所有正在运行的服务:
1
systemctl --all
列出所有
systemd单元,包括非活动状态的。
管理服务状态 (status|start|stop|restart):
1
systemctl status|start|stop|restart application.service
status: 查看服务详细状态和日志。start: 启动已停止的服务。stop: 停止正在运行的服务。restart: 重启服务,常用于配置更新后。
比如我们尝试一下查看
firewalld服务:
你在这里可以看到服务的状态,服务的路径等等信息。
这里我们尝试用
systemctl stop杀掉这个服务尝试一下。
这里使用
ps命令发现这里没有什么信息了。
再尝试用
system start重启这个服务。有的时候你可能更改了某些配置,你想重启该服务获取新的状态,你就可以使用
systemctl restart来实现。停止服务的最好方法就是使用
systemctl stop,而不是kill。你可以使用kill之后使用systemctl status来观察和使用systemctl stop的区别在哪里。重新加载服务的配置:
1
systemctl reload application.service
在不中断服务的情况下应用新的配置。
重新加载不会影响你的服务,而停止和启动是会影响的。如果你在配置的时候停止一个服务,那服务在停止的时候就会失效。但是如果你更改配置文件并使用reload,他会将配置文件重新加载到systemctl,而无需停止和启动应用程序。设置服务开机自启 (enable|disable):
1
systemctl enable|disable application.service
enable: 配置服务在系统启动时自动启动。disable: 阻止服务在系统启动时自动启动。
彻底禁用服务 (mask|unmask):
1
systemctl mask|unmask application.service
mask: 强制禁用服务,防止其被任何方式启动。unmask: 解除服务的强制禁用状态。