Até onde eu sei, o systemd não vai lidar com isso particularmente bem. Pelo que entendi, você deseja substituir o comportamento de sshd.service
, certo?
Felizmente para você, o systemd foi projetado para esse tipo de coisa. Basta colocar sua definição de serviço /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
.
Quer systemctl enable mysshd.service
trabalhar também? Sem problemas. Na [Install]
seção do seu arquivo de unidade, adicione uma linha que diz Alias=mysshd.service
. Em seguida, execute systemctl reenable ssh.service
para que o systemd conserte os links simbólicos da unidade, e você estará dourado.
Agora, você não forneceu detalhes sobre o que 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, está usando a abordagem errada. O systemd permite criar "trechos" de arquivos de unidades que serão aplicados sobre os arquivos de unidades normais. Isso permite adicionar ou substituir diretivas individuais enquanto permite 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 mudar my-custom-config.conf
para o que quiser e também pode ter vários arquivos de substituição). Nesse arquivo, coloque as diretivas que você deseja alterar ou adicione às habituais ssh.service
. Você pode até adicionar Alias=
diretivas, para que systemctl start mysshd.service
funcione! Lembre-se de executarsystemctl daemon-reload
depois que você fez (e, se você usou Alias=
, systemctl reenable ssh.service
).
Como um aparte, nunca, nunca altere os arquivos da unidade systemd /usr/lib/systemd
. Sempre! O padrão de hierarquia do sistema de arquivos exige que /usr
seja tratado como somente leitura. Na prática, isso significa que o gerenciador de pacotes lida com /usr
(exceto /usr/local
) e você não toca no que o gerenciador de pacotes lida - especialmente porque o que quer que você altere provavelmente será sobrescrito. Em vez disso, coloque suas coisas em algum lugar como /etc
.