Acabei de atualizar um servidor do Ubuntu 14.10 para o 15.04, e alguns serviços iniciados por meio de scripts upstart personalizados não estão mais em execução.
Meu entendimento é que preciso reescrevê-los como systemd
serviços, mas o pensamento de aprender todo o systemd
sistema da noite para o dia é um pouco assustador.
O script inicial inicia simplesmente autossh
na inicialização, e eu tenho alguns outros scripts semelhantes que iniciam processos de execução longa.
#/etc/init/autossh.conf
description "Maintain a permanent SSH tunnel to <other_server>"
start on started mountall
stop on shutdown
exec autossh -N other_server
Como posso reescrever isso como um systemd
serviço?
Respostas:
a primeira regra para migrar para o systemd
Neste ponto, em 2015, é mais provável que alguém já tenha feito isso.
O systemd existe há alguns anos. E tem havido uma indústria inteira de pessoas escrevendo arquivos de unidades e publicando-os. O GitHub, em particular, parece atrair repositórios de coleções de unidades de serviço.
Na verdade, basta pesquisar na WWW
autossh.service
(como uma frase):uma unidade de modelo
Dito isso, como já mostrei em vários lugares apenas no StackExchange, esse tipo de migração não é um processo mecanicista e, às vezes, apenas a tradução robótica de tudo o que se tem para um arquivo de unidade está fazendo as coisas de maneira errada ou, pelo menos, mal. Nesse caso,
autossh
está ofegando positivamente para ser manipulado com uma unidade de modelo , que é instanciada em unidades de serviço reais, parametrizadas pelo nome do destino. Então/etc/systemd/system/[email protected]
, tem:Crie um arquivo nomeado
/etc/autossh/other_server.example.conf
com, no mínimo:Todos os controles usuais são aplicados:
systemctl enable autossh@other_server.example
- Permita que uma instância seja iniciada automaticamente no bootstrap.systemctl start autossh@other_server.example
- Inicie manualmente essa instância imediatamente.systemctl status autossh@other_server.example
- Veja seu status.E sim, a primeira regra se aplica a isso. Pesquisando, pode-se descobrir que fui derrotado por isso, pouco menos de duas semanas, por Greg Freemyer no OpenSUSE.
fonte