Script Desligamento no Linux Mint

Salve galera !!

Como faço um script rodar ao clicar no botão desligar?
Quero que o script execute ao clicar no botão de desligar e logo desligar normalmente.

Sistema operacional: Linux Mint 20 Cinnamon
Versão Cinnamon : 4.6.7
kernel:5.4.0-65

1 curtida

Olá @Renata_Arruda_Torino seja bem-vinda ao Diolinux Plus :wave:t2:

O script que você criou, copia e cola ele na pasta etc/init.d e depois cria um link simbólico em cada etc/rc0.d e etc/r6.d. r0 executa o script quando desliga o computador e o r6 quando reinicia.

:pray:t2:

O ideal é fornecer mais detalhes pra saber a melhor forma e momento de executar esse script.

Precisa ser somente ao desligar, ou precisa ser também ao executar logoff (encerrar sessão)?

Esse script precisa de privilégios especias, ou seria mais adequado executar como usuário?

Há mais usuários no computador? Se sim, o script precisa ser executado para todos os usuários?

1 curtida

É básicamente o que o @RuKsu disse, só alguns detalhes a mais:

  • O script precisa ficar apenas em /etc/rc6.d
  • O script não pode ter extensão (não pode ter . no nome)
  • O nome do script precisa começar com K99
  • O script precisa ter permissão de execução (chmod +x)

Logo basta criar seu script em:

/etc/rc6.d/K99_seu_script

E deixar ele executável:

chmod +x "/etc/rc6.d/K99_seu_script"

Substituindo seu_script pelo nome do seu script

2 curtidas

Natanael.755 Entendi, legal :smile:

Esqueci do detalhe da permissão, obrigado por mencionar Natanael.755 :pray:t2:
Fiquei com uma duvida, o Runlevel 6 funciona ao desligar também? Eu li que o Runlevel 0 executa ao desligar e o Runlevel 6 ao reiniciar, por isso sugeri criar um link simbolico nos 2 path. Mas funcionando no R6 então perfeito, melhor ainda! :relaxed:

Mas também é bom analisar os passos que o Deleterium disse.

1 curtida

Renata_Arruda_Torino
Olá tudo bom?
Você pode fazer utilizando o Systemd, assim como é possível criar um serviço para iniciar é possível também no desligamento.

"[Unit]
Description=…

[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=<seu script/programa>

[Install]
WantedBy=multi-user.target"

RemainAfterExit=true é necessário quando não tem ExecStart configurado. Depois crie o arquivo .service, não esqueça de executar systemctl daemon-reload e systemctl enable seuscript.service.

Um abraço!

1 curtida

Pra ser sincero eu fui pela lógica do cron, sempre que você reinicia você desliga e liga de novo, então deveria chamar, mas não sei te falar cara kkkk só testando pra ver

1 curtida

Ainda não consegui fazer funcionar.
Realizei conforme vocês passaram, mas ainda não tive sucesso.

Olá @Renata_Arruda_Torino Então, scripts são “pessoais” né, claro que eles tem de seguir regras para poderem funcionar, mas como as distro Linux são variadas, então existem “1001 maneiras de se preparar Neston” lembra deste comercial? Por estes detalhes a forma de automatizar um script pode acabar sendo diferente para cada user.

Pelas pesquisas e dados que eu coletei, aparentemente você tem VMs instaladas no Mint e quer desligar elas de forma correta e depois desligar o computador com este script para automatizar isso. Estou supondo com base a pesquisas que fiz. Tem muitos outros propósitos. Por isso seria interessante seguir os passos que o Deleterium instruiu.

:pray:t2: