以下是系统进入 SUSPEND 或 AWAKES 状态时应输出到文件的代码:
(此代码位于 /etc/pm/sleep.d 中)
(还必须使文件可执行:sudo chmod +x sleep_mode)
(从命令行运行时,“暂停脚本”被写入文件中。
(但是当我暂停计算机或唤醒计算机时......没有任何内容写入文件。)
#!/bin/bash
# general entry
echo "suspend script"
echo "%suspend script" >> /tmp/suspend_time.txt
date +%s >> /tmp/suspend_time.txt
case "$1" in
suspend)
# executed on suspend
echo "%system_suspend" >> /tmp/suspend_time.txt
date +%s >> /tmp/suspend_time.txt
;;
resume)
# executed on resume
echo "%system_resume" >> /tmp/suspend_time.txt
date +%s >> /tmp/suspend_time.txt
;;
*)
;;
esac
答案1
将您的脚本复制到:
/lib/systemd/system-sleep/sleep_mode
您将需要使用sudo
权力。复制后将其标记为可执行文件:
sudo chmod +x /lib/systemd/system-sleep/sleep_mode
另外更改所有出现的:
echo "%s
到:
echo "s
百分号是不必要的。
现有的日期命令就可以了:
date +%s >> /tmp/suspend_time.txt
但是,它被格式化为自 1970 年 1 月 1 日以来的秒数,这不是最易读的日期格式。
案例陈述
该case
语句可以改为:
case $1/$2 in
pre/*)
echo "$0: Going to $2..."
# Place your pre suspend commands here, or `exit 0` if no pre suspend action required
;;
post/*)
echo "$0: Waking up from $2..."
# Place your post suspend (resume) commands here, or `exit 0` if no pre suspend action required
;;
esac