Linux低电量自动关机

2019.09.12更新:

可以直接使用自带的UPower,编辑 /etc/UPower/UPower.conf

PercentageLow=40
PercentageCritical=30
PercentageAction=20

然后重启一下,这样低电量的时候就会自动关机,笔记本就相当于有一个UPS。


最近住所电不稳定,经常突然之间就断电了,虽然我的是笔记本,但是也不一定能挨到来电,这样下去过不了多久笔记本里的SSD就要挂比 的节奏啊。

所以写了一个简单的脚本,当电量低了之后,就关机,再配合 crontab 或者 systemd timers 定时检查。

check_shutdown.timer:

$ cat /etc/systemd/system/check_shutdown.timer 
[Unit]
Description=Check if battery is low every 10 minutes

[Timer]
OnCalendar=*:0/10
Persistent=true

[Install]
WantedBy=timers.target

check_shutdown.service:

$ cat /etc/systemd/system/check_shutdown.service 
[Service]
ExecStart=
ExecStart=/home/jiajun/.xmonad/scripts/shutdown.py

check_shutdown.py:

#!/home/jiajun/.py3k/bin/python

import psutil
import logging
import os
import datetime

bat = psutil.sensors_battery()
logging.warn("%s: battery status: %s", datetime.datetime.now(), bat)

if bat.percent < 15:
    logging.warn("gonna shutdown")
    os.system("sudo shutdown -h now")

2020.04.12:

现已改用upower实现,编辑 /etc/UPower/UPower.conf

PercentageLow=20
PercentageCritical=17
PercentageAction=15

更多文章
  • etcd源码阅读与分析(四):lease
  • 干了这碗叔本华牌毒鸡汤 --- 《人生的智慧》
  • etcd源码阅读与分析(三):wal
  • Memory leak in net/http
  • etcd源码阅读与分析(二):raft
  • etcd源码阅读与分析(一):raftexample
  • 虚拟机里的Ubuntu sudo时卡住
  • Raft论文阅读笔记
  • Go访问私有变量
  • 避免全局变量
  • Go的unsafe包
  • Golang中实现禁止拷贝
  • 人生如戏,全靠演技 -- 《日常生活中的自我呈现》读后感
  • Golang的反射
  • 数据库事务