可以在VT 控制台上更改led指示器setleds
。因此,如果您使用的是VT,则只需输入
setleds
您将获得当前的领导地位。如果您不想启用numlock,只需将其点亮即可键入:
setleds -L +num
在X中它变得更加棘手,这是“最简单”的尝试方法。请注意,X通常以root身份运行,因此您必须检查X-windows tty的权限或以root特权运行它。通常X是tty7。/dev/console
应该可以在系统控制台上正常工作,并且应该影响所有VT。
sudo su -c 'setleds -L +num < /dev/tty7'
我认为这也会起作用:
sudo su -c 'setleds -L +num < /dev/console'
这是灯光选项列表
[{+|-}num] [{+|-}caps] [{+|-}scroll]
如果您的setleds
系统中没有,我想您可以从这个emerge包中获得它sys-apps/kbd
。
如果您是喜欢编码的人,那么这里有一个示例代码链接,用于更改X中的led。我没有对此进行测试,只是通过查看代码就可以了。
这是一个shell脚本,可以执行您最初想要的操作。将盖子或其他指示灯作为硬盘指示器。
#!/bin/bash
# Check interval seconds
CHECKINTERVAL=0.1
# console
CONSOLE=/dev/console
#indicator to use [caps, num, scroll]
INDICATOR=caps
getVmstat() {
cat /proc/vmstat|egrep "pgpgin|pgpgout"
}
#turn led on
function led_on()
{
setleds -L +${INDICATOR} < ${CONSOLE}
}
#turn led off
function led_off()
{
setleds -L -${INDICATOR} < ${CONSOLE}
}
# initialise variables
NEW=$(getVmstat)
OLD=$(getVmstat)
##
while [ 1 ] ; do
sleep $CHECKINTERVAL # slowdown a bit
# get status
NEW=$(getVmstat)
#compare state
if [ "$NEW" = "$OLD" ]; then
led_off ## no change, led off
else
led_on ## change, led on
fi
OLD=$NEW
done