systemd简介
Linux系统和服务进程由systemd系统和服务管理器进行管理,它提供了一种方式可以在启动时和运行中的系统上激活系统资源、Web守护进程和其他进程。
一般情况下,守护进程在系统启动时自动开启并持续维护服务运行,直到服务器关机或手动停止。通常来说,守护进程的进程名以d命名结尾。
systemctl简介
systemctl命令用于管理各种类型的systemd对象,他们称之为单元。使用systemctl命令可以对单元进行状态的管理,比如运行、停止运行、设置为开机启动等。
比较重要的一个单元类型是服务单元,服务单元通常的拓展名为.service,代表系统服务。这种单元用于启动经常访问的守护进程,如NginxWeb服务器。还有其他单元类型,如socket套接字单元、path路径单元等。
查询服务状态
使用systemctl status name[.type]来查询服务状态。如果未提供单元类型(type),则默认为service服务单元。(如果该服务单元存在的话~)
systemctl status sshd.service #查看ssh服务器守护进程的状态 |

在上面的状态中找到几个关键词:
| 关键词 | 描述 |
|---|---|
| loaded | 单元配置文件已受理 |
| enabled | 在系统启动时自动运行 |
| disabled | 在启动运行时不会自动启动 |
| active(running) | 正在通过一个或多个进程持续运行中 |
| active(exited) | 已经成功完成一次性的任务并结束守护 |
| active(waiting) | 运行中,但正在等待事件发生… |
| inactive | 进程没有运行 |
控制系统服务
停止服务并检查服务状态
systemctl stop sshd.service |
启动服务并检查服务状态
systemctl start sshd.service |
重启服务实现对服务的停止和启动
systemctl restart sshd.service |
发出指令使服务在不停止或重启的情况下重新加载其配置文件
如果对服务的配置文件进行了修改,不想对服务关闭影响业务的情况下使用reload选项来让服务对配置文件重新读取并加载。
systemctl reload sshd.service |
屏蔽系统服务
有些时候,系统中可能安装了相互冲突的服务,比如防火墙iptables与firewalld。为了防止管理员意外的启动两个服务可以将服务进行屏蔽。屏蔽服务将在配置文件目录中创建软连接,将其服务指向/dev/null设备文件,这样不小心启动了冲突的服务也不会出现有什么刺激的事情发生!
systemctl mask sshd.service # 屏蔽ssh服务器守护进程 |
systemctl start sshd.service # 屏蔽后尝试启动 |
systemctl unmask sshd.service # 解除屏蔽ssh服务器守护进程 |
使守护进程在系统启动时自动启动和停止
在使用systemctl对一个守护进程启动或停止,不能保证其下一次系统运行时也是启动或停止的状态。当相应的systemd配置目录中创建了软连接时,服务会随着系统启动的时候启动。软连接可以通过systemctl命令创建和删除。
首先要查看服务状态,如果关键词出现disabled证明这个服务在系统启动时不会随着系统一起启动,否则相反。
systemctl enable sshd.service # 设置软连接,使得该服务随系统启动时启动。 |
systemctl disable sshd.service # 删除软连接,使得该服务不会随系统启动时启动。 |