Tenho uma aplicação rodando em dois containers dentro de um fedora 33. Os containers precisam ser parados de uma forma específica que já possui um script para isso. Para garantir que os contêineres sejam sempre parados corretamente e sequencialmente antes do desligamento, quero personalizar o processo de desligamento do sistema. Eu encontrei isso que parece sugerir que eu não posso parar meus contêineres diretamente antes de iniciar o processo de desligamento (já que o systemctl para tudo em paralelo). Notei, no entanto, que o comando shutdown é um link simbólico em /usr/sbin/shutdown para alguns usuários e em /sbin/shutdown para o usuário root, ambos apontando para /bin/systemctl.
Posso simplesmente quebrar os dois links e substituí-los por um script como:
#!/bin/bash
echo "doing stuff..."
/bin/systemctl
ou isso vai gerar problemas no futuro? Se sim, existe uma maneira mais elegante de garantir que meus contêineres sempre serão interrompidos logo antes do desligamento toda vez que o comando de desligamento for chamado?
Você poderia fazer isso, mas... você não deveria. Como você está no Fedora Linux 33, você não está recebendo atualizações de segurança de qualquer maneira, mas se você recebesse, elas poderiam muito bem quebrar seu kludge.
Em vez disso, sugiro usar unidades do systemd para gerenciar seus contêineres (ou seja, criar
.service
arquivos para cada um) e, em seguida, você pode usar o normalAfter
ou asRequires
informações para expressar as dependências.