Cóż, aby zmienić wskaźnik LED na konsoli VT, którego możesz użyć setleds
. Więc jeśli jesteś w VT, możesz po prostu pisać
setleds
a otrzymasz swój obecny status led. Jeśli nie chcesz włączać funkcji numlock, po prostu ją podświetl, możesz wpisać:
setleds -L +num
W X jest trudniej i jest to „najprostszy” sposób na wypróbowanie tego. Należy pamiętać, że X jest zwykle uruchamiany jako root, więc albo musisz sprawdzić uprawnienia na X-Windows tty, albo uruchomić go z uprawnieniami roota. Zwykle X to tty7. /dev/console
powinien działać jako konsola systemowa i przez to powinno to wpływać na wszystkie VT.
sudo su -c 'setleds -L +num < /dev/tty7'
Myślę, że to również zadziała:
sudo su -c 'setleds -L +num < /dev/console'
Oto lista opcji światła
[{+|-}num] [{+|-}caps] [{+|-}scroll]
Jeśli nie masz setleds
w swoim systemie, domyślam się, że możesz go pobrać z tego pakietu emerge sys-apps/kbd
.
Jeśli jesteś bardziej osoby, która lubi kodu rzeczy oto link do en przykład kodu zmienić diod X . Nie testowałem tego, ale sam kod wyglądał dobrze.
A oto skrypt powłoki do robienia tego, co pierwotnie chciałeś. Aby mieć czapki lub inne diody LED jako wskaźniki dysku twardego.
#!/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