Ok, com algumas informações de outras respostas, você pode tentar este método não testado:
Em Veja como fechar e abrir eventos
-
O script que você deseja chamar quando a tampa é aberta ou fechada precisa ser armazenado. em
/etc/acpi/lid.sh
. -
Em seguida, é necessário criar o arquivo correto
/etc/acpi/events/lm_lid
com o conteúdo da seguinte forma:event=button/lid.* action=/etc/acpi/lid.sh
-
Reinicialize seu sistema para que isso entre em vigor. Ou talvez seja o suficiente para reiniciar o seu ACPI usando
sudo /etc/init.d/acpid restart
De link e Como posso suspender / hibernar da linha de comando?
o script /etc/acpi/lid.sh
ficará assim (altere o nome da sua rede para o seu nome da placa de rede. Use ifconfig
para encontrá-lo). Você pode escolher entre suspender ou hibernar.
#!/bin/bash
if [ "$(head -c1 /sys/class/net/yournetworkcardname/carrier)" -eq 0 ]; then
systemctl suspend
fi
Teste o script com bash -x /etc/acpi/lid.sh
e verifique se funciona. Você pode ter que adicionar o seguinte para executar o script como sudo sem ser solicitado com uma senha, de link :
myusername ALL = (root) NOPASSWD: /etc/acpi/lid.sh
Talvez você também precise chamar o script na ação com o sudo.