Até onde eu sei, o systemd não lida com isso particularmente bem. Pelo que entendi, você deseja substituir o comportamento de sshd.service
, certo?
Felizmente para você, o systemd é projetado para esse tipo de coisa. Basta colocar sua definição de serviço em /etc/systemd/system/ssh.service
, executar systemctl daemon-reload
para recarregar os arquivos da unidade e o systemd usará automaticamente essa configuração em vez do sistema ssh.service
.
Deseja também ter systemctl enable mysshd.service
work? Sem problemas. Na seção [Install]
do seu arquivo de unidade, adicione uma linha que diga Alias=mysshd.service
. Em seguida, execute systemctl reenable ssh.service
para que o systemd corrija os links simbólicos da unidade e você é de ouro.
Agora, você não forneceu detalhes sobre o que o mysshd.service
deve fazer. Se é completamente diferente do normal ssh.service
, ótimo! Use o método acima. No entanto, se você quiser apenas mudar uma coisa pequena, então você está usando a abordagem errada. O systemd permite que você crie "trechos" de arquivos unitários que serão aplicados sobre os arquivos unitários normais. Isso permite adicionar ou substituir diretivas individuais, permitindo que o restante do arquivo da unidade receba atualizações do gerenciador de pacotes. Para fazer isso, basta criar /etc/systemd/system/ssh.d/my-custom-config.conf
(você pode alterar my-custom-config.conf
para ser o que quiser e também pode ter vários arquivos de substituição). Nesse arquivo, coloque as diretivas que você deseja alterar ou adicionar ao usual ssh.service
. Você pode até adicionar diretivas Alias=
, para que systemctl start mysshd.service
funcione! Lembre-se de executar systemctl daemon-reload
depois de terminar (e, se você usou Alias=
, systemctl reenable ssh.service
).
Como um aparte, nunca, sempre altere os arquivos unitários do systemd em /usr/lib/systemd
. Sempre! O Padrão da hierarquia do sistema de arquivos exige que /usr
seja tratado como somente leitura. Na prática, isso significa que o gerenciador de pacotes manipula /usr
(exceto /usr/local
) e você não toca no que o gerenciador de pacotes manipula - especialmente porque o que você alterar provavelmente será substituído. Em vez disso, coloque suas coisas em algum lugar como /etc
.