Como desabilitar o desligamento para que um processo importante não possa ser interrompido?

Como desabilitar o desligamento para que um processo importante não possa ser interrompido?

Qual é a maneira mais simples de desativar ou suspender temporariamente a reinicialização/desligamento quando um processo importante está em execução? O processo demora muito para terminar e não pode ser pausado/reiniciado, por isso gosto de evitar desligar o pc enquanto ele está em execução. Ele é executado a partir do cron, portanto, a menos que eu verifique manualmente os processos em execução, não saberei se ele está em execução. Obrigado.

Responder1

Para sistemas mais recentes com systemd, isso foi resolvido por systemd-inhibit. Exemplo de uso:

systemd-inhibit --why="Doing weekly backup" bash my-backups.sh

Então, se um usuário tentar desligá-lo, ele não será permitido, a menos que seja forçado.

❯ systemctl poweroff
Operation inhibited by "bash my-backups.sh" (PID 2414 "systemd-inhibit", user ntrrgc),
reason is "Doing weekly backup".
Please retry operation after closing inhibitors and logging out other users.
Alternatively, ignore inhibitors and users with 'systemctl poweroff -i'.

Responder2

Execute which shutdownpara ver onde está o caminho para o programa de desligamento. Você pode renomear o arquivo, embora eu não recomende.

Outro método (mais seguro). Use um alias: alias shutdown=' ' algo assim é mais reversível. Se você estiver tentando impedir o desligamento de todos os usuários, adicione o alias globalmente.

Responder3

Desative os comandos "shutdown/reboot/poweroff/halt/hostname" em servidores de missão crítica

chmod 0 /sbin/shutdown

então, se você precisar usá-lo, faça chmod de volta para chmod 0755.

Responder4

Eu queria evitar que um usuário local desligasse um laptop durante uma atualização. Desativar o dispositivo de entrada foi a melhor solução. Para mim foi suficiente desabilitar o mouse, mas o teclado também pode ser desabilitado.

Claro que há uma desvantagem: o computador não pode ser usado durante este período.

Desativar entrada de teclado e mouse no unix (em X)

informação relacionada