守护进程和控制服务
- 守护进程和控制服务
systemd
简介systemctl
简介- 查询服务状态
- 控制系统服务
- 停止服务并检查服务状态
- 启动服务并检查服务状态
- 重启服务实现对服务的停止和启动
- 发出指令使服务在不停止或重启的情况下重新加载其配置文件]
- 屏蔽系统服务]
- 使守护进程在系统启动时自动启动和停止
systemd
简介
Linux系统和服务进程由systemd
系统和服务管理器进行管理,它提供了一种方式可以在启动时和运行中的系统上激活系统资源、Web守护进程和其他进程。 一般情况下,守护进程在系统启动时自动开启并持续维护服务运行,直到服务器关机或手动停止。通常来说,守护进程的进程名以d
命名结尾。
systemctl
简介
systemctl
命令用于管理各种类型的systemd对象,他们称之为单元
。使用systemctl
命令可以对单元进行状态的管理,比如运行、停止运行、设置为开机启动等。 比较重要的一个单元类型是服务单元,服务单元通常的拓展名为.service
,代表系统服务。这种单元用于启动经常访问的守护进程,如Nginx
Web服务器。还有其他单元类型,如socket
套接字单元、path
路径单元等。
查询服务状态
使用systemctl status name[.type]
来查询服务状态。如果未提供单元类型(type),则默认为service
服务单元。(如果该服务单元存在的话~)
systemctl status sshd.service #查看ssh服务器守护进程的状态
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-01-31 10:38:57 CST; 3h 15min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 1572 (sshd)
Tasks: 1 (limit: 49169)
Memory: 7.7M
CGroup: /system.slice/sshd.service
└─1572 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,aes256-ctr,aes256-cbc,aes128-gcm@openssh.com,aes128-ctr,aes128-cbc -oMACs=hmac-sh>
Jan 31 11:32:15 centos8 sshd[4221]: Accepted password for yourname from 192.168.1.157 port 44876 ssh2
Jan 31 11:32:15 centos8 sshd[4221]: pam_unix(sshd:session): session opened for user yourname by (uid=0)
Jan 31 11:32:27 centos8 sshd[4307]: Accepted password for yourname from 192.168.1.157 port 44900 ssh2
关键词
描述
loaded
单元配置文件已受理
enabled
在系统启动时自动运行
disabled
在启动运行时不会自动启动
active(running)
正在通过一个或多个进程持续运行中
active(exited)
已经成功完成一次性的任务并结束守护
active(waiting)
运行中,但正在等待事件发生…
inactive
进程没有运行
控制系统服务
停止服务并检查服务状态
systemctl stop sshd.service
systemctl status sshd.service
启动服务并检查服务状态
systemctl start sshd.service
systemctl status sshd.service
重启服务实现对服务的停止和启动
systemctl restart sshd.service
systemctl status sshd.service
发出指令使服务在不停止或重启的情况下重新加载其配置文件
如果对服务的配置文件进行了修改,不想对服务关闭影响业务的情况下使用reload
选项来让服务对配置文件重新读取并加载。
systemctl reload sshd.service
systemctl status sshd.service
屏蔽系统服务
有些时候,系统中可能安装了相互冲突的服务,比如防火墙iptables
与firewalld
。为了防止管理员意外的启动两个服务可以将服务进行屏蔽。屏蔽服务将在配置文件目录中创建软连接,将其服务指向/dev/null
设备文件,这样不小心启动了冲突的服务也不会出现有什么刺激的事情发生!
systemctl mask sshd.service # 屏蔽ssh服务器守护进程
Created symlink /etc/systemd/system/sshd.service → /dev/null.
systemctl start sshd.service # 屏蔽后尝试启动
Failed to start sshd.service: Unit sshd.service is masked. # 提示服务单元被屏蔽,无法启动。
systemctl unmask sshd.service # 解除屏蔽ssh服务器守护进程
Removed /etc/systemd/system/sshd.service.
使守护进程在系统启动时自动启动和停止
在使用systemctl
对一个守护进程启动或停止,不能保证其下一次系统运行时也是启动或停止的状态。当相应的systemd
配置目录中创建了软连接时,服务会随着系统启动的时候启动。软连接可以通过systemctl
命令创建和删除。 首先要查看服务状态,如果关键词出现disabled
证明这个服务在系统启动时不会随着系统一起启动,否则相反。
systemctl enable sshd.service # 设置软连接,使得该服务随系统启动时启动。
systemctl is-enabled sshd.service # 验证状态,返回为`enabled`为开启自动启动,`disabled`为不会开机自动启动。
enabled
systemctl disable sshd.service # 删除软连接,使得该服务不会随系统启动时启动。
systemctl is-enabled sshd.service # 验证状态,返回为`enabled`为开启自动启动,`disabled`为不会开机自动启动。
disabled