O daemon acpid
deve receber eventos de bateria pelo subsistema ACPI. Quando você desconectar / conectar o laptop, deve haver eventos de bateria relacionados. Os eventos podem ser associados a ações como desligar / suspender / hibernar o sistema e assim por diante.
Primeiramente, tente verificar isso observando /var/log/messages
ou arquivos de log relacionados ao desconectar o laptop. Deve haver algo como
... ACPI action undefined: ...
Se não houver nada, você pode tentar o comando acpi_listen
, que se conecta ao acpid e ouve eventos.
Em seguida, você pode configurar um manipulador de eventos genérico no diretório /etc/acpi/events
para eventos de bateria. Crie um arquivo, por exemplo battery.conf
com o seguinte conteúdo:
event=battery.*
action=/etc/acpi/actions/battery.sh
Ele diz que qualquer evento de bateria deve ser processado pelo script battery.sh
. Nesse script, eu monitoraria o status da bateria disponível no arquivo /proc/acpi/battery/*/state
. Especialmente, verifique a linha "estado de carregamento" que deve mudar para "descarregar" quando você desconectar o laptop ou "carregar / carregar" quando conecte-o de volta.
Com base nessas informações, você pode executar o comando hibernate do manipulador de eventos battery.sh
. Além disso, você pode encontrar alguns outros exemplos úteis, por exemplo no github .