基本上systemd这个启动服务机制只有systemctl命令来处理,所以全部的操作都需要使用systemctl
systemctl管理单一服务
一般来说服务的启动有两个阶段,一个是开机是否启动,以及现在是否启动
systemctl【command】【unit】
command主要有:
start:立即启动后面接的unit
stop:立即关闭后面接的unit
restart:立即重新启动后面接的unit,亦即执行stop后执行start
reload:不关闭后面接的unit的情况下,重新加载配置文件,让配置生效
enable:设置以后开机时会自动启动后面接的unit
disable:设置以后开机时不会启动后面接的unit
status:列出目前后面接的unit的状态以及信息
is-active:显示后面接的unit目前是否在运行
is-enable:显示后面接的unit开机时是否会启动
命令讲解
我们来查看一下atd这个服务目前的状态
Loaded:说明开机时此unit是否会启动,enabled为开机启动,disabled为开机不启动
Active:说明此unit的状态是正在执行(running)亦没有执行(dead)
后面几行则是说明此unit程序的PID状态以及最后一行显示这个服务的日志文件信息
日志文件信息格式为:时间 信息发送者 哪个服务的信息 实际信息内容
此时我们可以看到该unit的状态为inactive(dead)
Active的常见状态:
- active(running):正有一个或多个进程在程序中运行的意思
- active(exited):仅执行一次就正常结束的服务,目前并没有任何进程在系统中执行(比如开机或挂载时才会执行一次的quotaon功能)
- active(waiting):正在运行中,不过还需等待其他的事件发生才能继续运行(比如打印的队列相关服务就是此状态,虽然在启动,但只有有队列进来了才会继续唤醒打印机服务来进行下一步的打印功能)
- inactive:这个服务目前没有运行
Loaded的常见状态:
- enabled:在开机时会自动启动
- disabled:开机时不会被启动
- static:这个daemon(服务)不可以自己启动,但是可能会被其他的enabled服务来唤醒(依赖属性的服务)
- mask:无论如何都无法启动,因为已经被强制注销(非删除),可通过systemctl umask来改回默认状态
systemctl start命令和systemctl stop命令
强迫服务注销mask与取消注销unmask
这个mask注销操作只是让启动的脚本变成空设备了而已,所以通过mask功能就可以不去管其他依赖服务可能会启动这个需要关闭的服务了
systemctl查看系统上所有服务
systemctl【command】【--type=TYPE】【--all】
命令与选项:
list-units:依据unit显示出目前有启动的unit,若加上--all才会列出没启动的
list-unit-files:依据/usr/lib/systeam/内的文件,将所有文件列表说明
--type=TYPE:unit类型,主要有service、socket、target等
显示的信息主要有:
UNIT:项目的名称,包括各unit的类别(看副文件名)
LOAD:开机时是否会被加载
ACTIVE:目前的状态,须与后续的SUB搭配,就是我们用systemctl status查看时,active的项目
DESCRIPTION:详细描述