由于工作较忙,随性更新。admin@stgod.com

linux机器运行一个监控程序,需要显示器一直亮着,不能黑屏,不能进入省电模式。

系统中没有安装gnome的电源管理程序,也没有安装屏幕保护程序。使用如下办法都无效:

设置bios

修改启动参数acpi=off,noapic

安装gnome-power-manager,设置从不黑屏

修改xorg.conf的DPMS选项和NoPM选项

修改nv的驱动参数

最后用xset来设置。有以下问题

将dmps的时间设置为10分钟以内的时间值,屏幕均可以到时自动黑屏,

设置大于10分钟后,空闲时间一到10分钟就黑屏,

很偶然的使用xset -q查看除dpms之外的其它参数时,发现了一个screensave的值为600。

原来dpms和屏保是互相作用的,这两个值谁设的小谁生效。

使用xset -q查看x的设置,可以看到屏保的时间是600秒,难怪dpms的值只对小于10分钟的时间有效

总结如下:

可以使用xset命令设置各项:

xset s 300 #设置屏保时间为300秒,时间单位为秒

xset s 0 #关闭屏幕保护(设置为0也可以关闭xset s 0  0)

xset dpms 600 900 1200 # 三个数值分别为Standby、Suspend、Off,具体什么意思就不多说了,单位秒(设置为0也可以关闭xset dpms 0 0 0 )

xset -dpms #关闭电源管理

也可以编辑xorg.conf

ServerLayerOut字段中添加如下几行:

Option "BlankTime" "5"   #注意这里的时间值为分钟
Option "StandbyTime" "10"
Option "SuspendTime" "15"
Option "OffTime" "20"

时间值设置成0 就是关闭该项,

效果都是一样的。可以使用xset -q 查看设置情况。

xset b 0 可以关闭X下的铃声

xset b off都是一样的

----------------------------------------------

请一定要注意:X的屏幕保护和gnome的屏幕保护是不一样的,X的电源管理和gnome的电源管理也是不一样的。即使你的gnome桌面环境不安装屏幕保护程序,X的屏幕保护也会起作用(黑屏!),

如果你想要看遠端 PC 的顯示器( Monitor )狀態是開示關, 如果關了, 怎麼叫起來?只要有支援 DPMS 就好辦了.假設你有四台機器, 都不想它們 monitor 因為任何原因(例如省電)而關閉的. 或許你希望把它們叫起來.用下列 script 即可.前提是你已經建好 ssh key authentication , 可以用 ssh 不需密碼登入.

Java代码

#!/bin/sh
# monitoron.sh
nocpc="pc1 pc2 pc3 pc4"
user="xyz"
for i in $nocpc
do
ssh -l $user $i "DISPLAY=:0 xset -q |grep Monitor" |grep On > /dev/null
if [ $? -ne 0 ]; then
echo $i is off, turn on it
ssh -l $user $i "DISPLAY=:0 xset dpms force on"
fi
done

测试java代码

ssh xyz@pc3 "DISPLAY=:0 xset dpms force off
sh monitoron.sh