Tomasz Wendlandt

Avatar

Tech blog

Wyłączanie Linuksa

Zauważyłem, że wiele osób nie korzysta jeszcze z dobrodziejstwa jakie daje ACPI (Advanced Configuration and Power Interface). Jeżeli posiadamy komputer z obecnej epoki;) (czyt. z płytą ATX) możemy wyłączać naszego Linuksa za pomocą przycisku Power na obudowie, zamiast wpisywać z shella poweroff. Co będzie potrzebne nam do tego rozwiązania?

1) Przede wszystkim wkompilowana obsługa ACPI w kernelu (jeżeli jeszcze tego nie masz).

Power management options (ACPI, APM) —>
ACPI (Advanced Configuration and Power Interface) Support —>
[*] ACPI Support
< M > Button

2) Oraz daemon acpid (Ubuntu way;))

# apt-get install acpid

Po reboocie z nowy kernelem upewnijmy się czy wszystko gra:

# dmesg | grep Button
ACPI: Power Button (FF) [PWRF]
ACPI: Sleep Button (FF) [SLPF]
ACPI: Power Button (CM) [PWRB]

Jeżeli otrzymamy komunikat podobny do powyższego to znaczy, że mamy już wkompilowaną obsługę ACPI. I to właściwie tyle, to wszystko co jest nam potrzebne. Teraz po naciśnięciu guzika ‘Power’ na obudowie Linux zatrzyma wszystkie daemony i na końcu wyłączy serwer. Całe rozwiązanie obsługiwane jest przez daemona acpid, który nasłuchuje w /proc/acpi/event, czy nie nastąpiło zdarzenie obsługiwane przez ACPI, jak np. nacisnięcie ‘Power’ na obudowie. Jeżeli coś takiego nastąpi, wówczas acpid wykonuje wcześniej zdefinowaną akcję w /etc/acpi/events i uruchamia w userspace’ie dowolne polecenie, np. poweroff lub shutdown -h now.

One Comment, Comment or Ping

  1. Ja tylko dodam że w takiej sytuacji będzie problem z restartem acpid pod ixami. Aby temu zapobiec wystarczy do konfiguracji ixow dodać:

    Section “ServerFlags”
    Option “NoPM” “yes”
    EndSection

    Oraz – z acpi można robić też inne fajne rzeczy, np zamiast wyłączać komputer po wciśnięciu power lub zamknięciu ekranu – hibernować go ;)

Reply to “Wyłączanie Linuksa”

Poznań

  • Cloud and Visibility OK
  • Temperature: 12°C
  • Visibility: 10km
  • Clouds: Cloud and Visibility OK
  • Wind: E at 9 km/h
  • Barometer: 1014 hPa
  • Humidity: 76.5%
  • Sunrise: 8:53 GMT+2
  • Sunset: 21:00 GMT+2