17.2 【Linux】通过 systemctl 管理服务

systemd这个启动服务的机制,是通过一支名为systemctl的指令来处理的。跟以前 systemV 需要 service / chkconfig / setup / init 等指令来协助不同, systemd 就是仅有systemctl 这个指令来处理而已。

17.2.1 通过 systemctl 管理单一服务 (service unit) 的启动/开机启动与观察状态

关掉atd不应该使用kill的方式来关掉一个正常的服务,否则systemctl会无法继续监控该服务。使用 systemtctlstatus atd 的输出结果中,第 2, 3 两行很重要~因为那个是告知我们该 unit 下次开机会不会默认启动,以及目前启动的状态。

基本上有几个常见的状态:

active (running):正有一只或多只程序正在系统中执行的意思,举例来说,正在执行中的 vsftpd 就是这种模式。

active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的 quotaon 功能,就是这种模式! quotaon不须一直执行,只须执行一次之后,就交给文件系统去自行处理。通常用 bash shell写的小型服务,大多是属于这种类型 (无须常驻内存)。

active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。举例来说,打印的伫列相关服务就是这种状态! 虽然正在启动中,不过,也需要真的有伫列进来 (打印工作) 这样他才会继续唤醒打印机服务来进行下一步打印的功能。

inactive:这个服务目前没有运行的意思。

enabled:这个 daemon 将在开机时被执行

disabled:这个 daemon 在开机时不会被执行

static:这个 daemon 不可以自己启动 (enable 不可),不过可能会被其他的 enabled的服务来唤醒 (相依属性的服务)

mask:这个 daemon 无论如何都无法被启动!因为已经被强制注销 (非删除)。可通过systemctl unmask 方式改回原本状态服务启动/关闭与观察的练习

服务启动/关闭与观察的练习

问题:找到系统中名为 chronyd 的服务,观察此服务的状态,观察完毕后,将此服务设置为: 1)开机不会启动 2)现在状况是关闭的情况!回答:我们直接使用指令的方式来查询与设置看看:

强迫服务注销 (mask) 的练习

比较正规的作法是,要关闭 cups.service 时,连同其他两个会唤醒 service 的 cups.socket 与cups.path 通通关闭,比较不正规的作法是,那就强迫 cups.service 注销,通过 mask 的方式来将这个服务注销看看!

那如何取消注销呢?当然就是 unmask。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯西极限存在准则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值