Eu tenho esse script que estou tentando fazer com que o sistema seja executado no desligamento e somente no desligamento (ou na reinicialização). Este script não inicia nem para um servidor; apenas desmonta alguns sistemas de arquivos. Infelizmente, grande parte da documentação que encontro parece pensar que vou escrever um script para gerenciar um servidor, mas não é isso que estou fazendo.
Leiturahttp://tuxgraphics.org/npa/systemd-scripts/e man systemd.service
e man systemd.unit
(nem tenho certeza do que devo seguir) eu tenho:
[Unit]
Description=My umount script
After=network.target syslog.target
[Service]
Type=oneshot
ExecStop=/home/PL/bin/umountb2.sh
StandardOutput=journal
Mas não tenho ideia se isso está certo e estou menos confiante ainda de que será executado no momento certo. Preciso que ele seja executado algum tempo depois que todos os usuários regulares forem desconectados, mas não antes de qualquer sistema de arquivos ser desmontado.
Estou executando o Ubuntu 22.04.2
Editar: agora o arquivo de configuração fica assim:
Description=My special shutdown script
[Service]
Type=oneshot
RemainAfterExit=true
ExecStop=/home/PL/bin/umountb2.sh
[Install]
WantedBy=multi-user.target
E as coisas melhoraram, mas tem um problema, porque meu script chama cryptsetup
que retorna um erro. Acho que está sendo executado tarde demais, pois quando reinicio, executo journalctl -b -1 --dmesg
só existem 3 mensagens que seguem meu script, sendo a primeira:
kernel: nfsd: último servidor foi encerrado, liberando cache de exportação