systemctl

参考:linux中systemctl详细理解及常用命令

systemctl理解

Linux 服务管理两种方式service和systemctl。
systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。
systemd对应的进程管理命令是systemctl。
systemctl命令兼容了service。

systemctl命令管理systemd的资源Unit

systemd的Unit放在目录/usr/lib/systemd/system(Centos)或/etc/systemd/system(Ubuntu)。

主要有四种类型文件.mount,.service,.target,.wants。

在这里插入图片描述

.mount文件
.mount文件定义了一个挂载点,[Mount]节点里配置了What,Where,Type三个数据项。
等同于以下命令:
mount -t hugetlbfs /dev/hugepages hugetlbfs

在这里插入图片描述

.service文件
.service文件定义了一个服务,分为[Unit][Service][Install]三个小节。
[Unit]
Description:描述。
After:在network.target,auditd.service启动后才启动。
ConditionPathExists: 执行条件。
[Service]
EnvironmentFile:变量所在文件。
ExecStart: 执行启动脚本。
Restart: fail时重启。
[Install]
Alias:服务别名。
WangtedBy: 多用户模式下需要的。

在这里插入图片描述

.target文件
.target定义了一些基础的组件,供.service文件调用。

在这里插入图片描述

.wants文件
.wants文件定义了要执行的文件集合。
每次执行,.wants文件夹里面的文件都会执行。

常用命令

查看版本号
systemctl --version 		查看版本号

管理服务(unit)
systemctl [command] [unit]
command 主要有:
start 						立刻启动后面接的 unit。
stop						立刻关闭后面接的 unit。
restart						重启 unit,亦即执行 stop 再 start 的意思。
reload						不关闭 unit 的情况下,重新载入配置文件,让设置生效。
enable						设置下次开机时,后面接的 unit 会被启动。
disable						设置下次开机时,后面接的 unit 不会被启动。
status						目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。
is-active					目前有没有正在运行中。
is-enable					开机时有没有默认要启用这个 unit。
kill						不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。
show						列出 unit 的配置。
mask						注销 unit,注销后你就无法启动这个 unit 了。
unmask						取消对 unit 的注销。

列举已经启动的unit
systemctl list-units(或者直接 systemctl)
有5列,分别为UNIT、LOAD、ACTIVE、SUB、DESCRIPTION
UNIT						项目的名称,包括各个 unit 的类别(看扩展名)。
LOAD						开机时 unit 的配置是否被加载。
ACTIVE						目前的状态,须与后续的 SUB 搭配!就是我们用 systemctl status 观察时,active的内容。
DESCRIPTION					描述信息。

查看系统上一共装了多个unit
​​​​​​​systemctl list-unit-files

只查看某种类型的unit
比如我们只查看服务类型的unit:
systemctl list-units --type=service -all

查看加载失败的 unit
如果发现某个 unit 不工作,可以查看是否有 unit 加载失败:
​​​​​​​systemctl --failed

管理不同的操作环境(target unit)
systemctl [command] [unit.target]
command 有:
get-default					取得目前的 target
set-default					设置后面接的 target 成为默认的操作模式
isolate						切换到后面接的模式。

查看系统中默认有多少种 target
systemctl list-units --type=target -all
在此仅介绍几个常用的 target:
graphical.target			就是文字界面再加上图形界面,这个 target 已经包含了下面的 multi-user.target。
multi-user.target			纯文本模式!
rescue.target				在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的临时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。
emergency.target			紧急处理系统的错误,在无法使用 rescue.target 时,可以尝试使用这种模式!
shutdown.target				就是执行关机。
getty.target				可以设置 tty 的配置。
正常的模式是 multi-user.target 和 graphical.target 两个。
救援方面的模式主要是 rescue.target 以及更严重的 emergency.target。
如果要修改可提供登陆的 tty 数量,则修改 getty.target。

为了方便起见,systemd 提供了几个简单的指令用来切换操作模式,大致如下所示:
systemctl poweroff			系统关机
systemctl reboot			重新开机
systemctl suspend			进入暂停模式
systemctl hibernate			进入休眠模式
systemctl rescue			强制进入救援模式
systemctl emergency			强制进入紧急救援模式

检查 unit 之间的依赖性
很多服务之间是有依赖关系的,systemd 的一大亮点就是可以管理 unit 之间的依赖关系。
systemctl list-dependencies [unit] [--reverse]
--reverse 会反向追踪是谁在使用这个 unit

例子:
linux 安装并启动docker

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值