Como alterar a ação de desligamento do botão Power

2

Eu uso o Mageia ver 4 Linux como servidor, sem o X iniciado e sem qualquer login de usuário durante a operação normal. Este PC tem um cartão especial para medir e controlar outros dispositivos. Esta placa tem seu próprio SH4 Linux on-board e precisa ser desligada antes do desligamento do PC.

Existe um conjunto de comandos fornecidos pelo fornecedor do cartão e eles funcionam corretamente. Para desligar a placa, é necessário executar /usr/sbin/io_card stop , aguardar o desligamento correto da placa e executar o desligamento "normal" do PC.

Eu escrevi um script especial de desligamento e ele funciona corretamente. Mas o problema é quando eu pressiono o botão "Power" no PC, ele executa o desligamento "normal" do PC em vez do meu script.

Eu tento alterar os scripts / etc / acpi / events / power e systemd para incluir meu próprio script de desligamento, mas isso não funciona. Neste momento, o arquivo / etc / acpi / events / power contém apenas a entrada:

action=/home/serwer/Pobrane/shut

onde "shut" é meu script de desligamento, funcionando bem quando executado manualmente. Então, como posso alterar a ação de desligamento padrão associada ao botão "Power"?

    
por mackowiakp 17.03.2014 / 10:42

2 respostas

1

Eu não posso garantir que isso funcionará na Mageia, mas é assim que eu consegui algo semelhante para trabalhar no meu Debian.

Existe um script (na minha máquina, é /etc/acpi/powerbtn-acpi-support.sh ) que é executado por padrão quando o botão liga / desliga é pressionado. Edite esse script e encontre esta seção:

if [ -x /etc/acpi/powerbtn.sh ] ; then
    # Compatibility with old config script from acpid package
    /etc/acpi/powerbtn.sh
elif [ -x /etc/acpi/powerbtn.sh.dpkg-bak ] ; then
        # Compatibility with old config script from acpid package
    # which is still around because it was changed by the admin
        /etc/acpi/powerbtn.sh.dpkg-bak
else
    # Normal handling.
    /sbin/shutdown -h -P now "Power button pressed"

fi

Altere /sbin/shutdown -h -P now "Power button pressed" para apontar para o seu script, salve o arquivo e ele deverá ser iniciado sempre que você pressionar o botão liga / desliga.

    
por 17.03.2014 / 16:39
0

Se você tiver a versão do polkit > = 0.106, poderá definir um arquivo de regras do polkit, vinculado à ação de desligamento, que chama seu script quando o usuário pressiona o botão de desligamento.

A regra do polkit será semelhante a esta:

polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.consolekit.system.stop" ||
    action.id == "org.freedesktop.login1.power-off" ||
    action.id == "org.freedesktop.login1.power-off-multiple-sessions" || 
    action.id == "org.xfce.session.xfsm-shutdown-helper")  
{
        polkit.spawn(["/home/serwer/Pobrane/shut", subject.user]);        
        return polkit.Result.YES;
}
});

Para adicionar essa regra, você só precisa copiar isso em um arquivo com a extensão .rules e copiar o arquivo em /usr/share/polkit-1/rules.d/

Mas não sei se isso funciona sem uma interface gráfica

    
por 20.02.2018 / 14:00