Tietokoneen sammuttaminen on yleensä helppoa, valikoista valitaan ”sammuta” ja kone sammuu nätisti. Hieman vaikeampaa on tietokoneen sammuttaminen, jos koneessa ei ole näyttöä kiinni, mutta usein tämäkin ongelma ratkeaa ottamalla etäyhteys. Aina tämäkään ei ole mahdollista, joten tarvitaan jotain muuta, kuten ACPI ja sen avulla tehtävät tapahtumat.
Gentoo Wiki:ssä on asiasta hyvät ohjeet, jossa koneen virtanappi laitetaan tekemään tietty tapahtuma, jonka acpid -daemon prosessoi. Tai oikeastaan acpid -daemon tarkkailee, jos virtanappia painetaan ja suorittaa tämän jälkeen halutun skriptin.
Yksinkertaisuudessaan virtanapin virittämiseen tarvitaan seuraavat asiat:
- Laitteisto, joka tukee ACPI virranhallintaa
- Kerneliin on käännetty tuki ACPI:lle
- Virtanappi on rekisteröity ACPI tapahtumaksi
- acpid kuuntelee ACPI tapahtumia
- Skripti virtanapin tapahtuman käsittelyyn
Kohdat 1, 2 ja 4 ovat triviaaleja, joten en niitä tähän (itselleni muistiin) kirjoita.
Virtanapin rekisteröiminen tapahtuu seuraavasti:
# handle the power button press
event=button[ /]power
action=/etc/acpi/onButtonPress-Power.sh
EOT
Ja sammutusskripti:
#!/bin/sh
# /etc/acpi/onButtonPress-Power.sh
# Shutdown when the power button is pressed
logger ”Power button pressed — shutting system down”
/sbin/shutdown -h now
EOT
Lopuksi skriptille annetaan suoritusoikeudet chmod 750 /etc/acpi/onButtonPress-Power.sh
ja käynnistetään acpid -daemon uudestaan.
Nyt tietokoneen pitäisi sammua hallitusti virtanapista painamalla. Helppoa ja yksinkertaista. Testattu Gentoo Linuxissa ja toimivuudesta muissa Linux distribuutioissa ei tietoa, joten tarvittaessa sovella.