禁止 ubuntu server 自动休眠/systemctl mask 操作

本文介绍了如何在Ubuntu服务器上防止自动休眠,通过systemctlmask命令将sleep.target等与休眠相关的服务屏蔽,并解释了systemctlenable/disable和mask/unmask操作的原理。
摘要由CSDN通过智能技术生成

同步发布在个人笔记禁止 ubuntu server 自动休眠/systemctl mask 操作

禁止 ubuntu server 自动休眠/systemctl mask 操作

虽然一般情况下 ubuntu server 系统并不会自动休眠,但是有时候还是会出现这样的奇怪现象。借此记录一下systemctl mask操作。并且操作也适用于 desktop 系统。
查看自动休眠服务

$ systemctl status sleep.target
 ● sleep.target - Sleep
    Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
    Active: inactive (dead)
      Docs: man:systemd.special(7)

正常情况下应该像上面这样inactive,如果要完全解决这个问题,可以使用systemctl mask指令。

systemctl mask

一般情况下我们是通过systemctl enablesystemctl disable来设置服务的开机自启动和关停自启动,其原理是:

  • enable 会在/etc/systemd/system/目录下创建需要的软链接,指向/usr/lib/systemd/system/目录中的文件,以此来使得服务自启动。
  • disable则是删除这个软链接,这样服务就不会自启动。

但是被 disable 的服务只是不会开机自启动,别的进程依旧可以启动这个服务。使用systemctl start就可以正常启动。
所以被 disable 的服务也可能运行。
想要彻底让一个服务失能,我们可以把它屏蔽

  • mask 建立一个指向/dev/null的符号链接
$ systemctl mask your_service
Created symlink from /etc/systemd/system/your_service.service to /dev/null.

这样就算有别的进程通过 start 指令想要启动服务,也只会因为指向 null 而失败。
想要取消这种屏蔽使用 unmask 指令

$ systemctl unmask your_service

屏蔽sleep.target

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
 Created symlink /etc/systemd/system/sleep.target → /dev/null.
 Created symlink /etc/systemd/system/suspend.target → /dev/null.
 Created symlink /etc/systemd/system/hibernate.target → /dev/null.
 Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

这样就把和自动休眠相关的服务屏蔽了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值