创建脚本来报告系统挂起或唤醒未运行?

创建脚本来报告系统挂起或唤醒未运行?

使用是否有一个“变量”可以查看计算机是否处于睡眠模式?

以下是系统进入 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

相关内容