如何解决自动化 setterm
我在 HP Pavilion dv6 上安装了没有 x11 的 GNU/linux Debian 10 (sid) 网络安装。我可以始终保持显示器开启:
setterm -blank 0
然后在 10 分钟不活动后关闭显示器:
setterm -blank 10.
我想做的是让屏幕在每晚 23:00 关闭,然后在每天早上 06:00 重新打开。我已经在 cron 和 systemctld 中尝试了几件事。
我在两者中都尝试过的是:
setterm -blank 10
setterm -term bash -blank 10
setterm -term fish -blank 10
setterm -term /dev/tty1 -blank 10
setterm -term linux -blank 10
$TERM=linux setterm -blank 10
$TERM=bash setterm -blank 10
$TERM=fish setterm -blank 10
$TERM=/dev/tty1 setterm -blank 10
我还制作了一个包含所有这些变体的 bash 脚本。无济于事。甚至可以在 cron 中运行 setterm 或作为 systemctld 事件运行吗?
作为次要说明,我使用 fish 作为我的外壳,而且我必须从 GNU/screen 中分离出来才能真正让 setterm 工作。
解决方法
对于某些选项,setterm
通过向标准输出发送一系列字符来工作。通常,当您在控制台上时,控制台驱动程序会读取这些内容并进行解释。其他选项类似地在 stdin 上执行 ioctl。
如果您从 cron 或 systemd 单元使用这些命令,则需要将输出或输入重定向到控制台/从控制台重定向。例如,从 cron 中,以 root 身份尝试
setterm -term linux -blank 0 >/dev/console
或者对于使用 ioctl 的东西,设置标准输入
setterm -term linux -powersave on </dev/console
如果您在 cron 中使用 bash shell,您可以说 <>/dev/console
以打开和关闭。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。