Você não deve criar unidades no diretório graphical.target.wants
, esse diretório é destinado a links simbólicos. Em vez disso, crie-o diretamente no diretório /etc/systemd/system
.
Além disso, você deseja ter uma seção [Install]
, descrevendo onde instalá-la quando o comando systemctl enable
for usado. (No seu caso, você poderia usar graphical.target
, embora multi-user.target
seja uma escolha mais comum e seja uma dependência de graphical.target
, então será puxada durante a inicialização.)
Portanto, crie isso em /etc/systemd/system/log.service
:
[Unit]
Description=...
[Service]
...
ExecStop=/bin/bash /home/log.sh
[Install]
WantedBy=multi-user.target
E, em seguida, ative-o com:
$ sudo systemctl enable log.service
Isso deve funcionar então.
É possível que suas dependências estejam incorretas. Você tem Before=shutdown.target reboot.target
, mas provavelmente você precisa usar uma After=
de dependência para serviços que você precisa para executar antes que eles estão parados. As dependências funcionam em uma ordem inversa no desligamento, portanto, liste as que você depende (como local-fs.target
, network.target
) nessa cláusula After=
. A diretiva RequiresMountsFor=
também pode ser interessante, para sistemas de arquivos que você precisa montar para que o seu log.sh possa ser executado ...