Ubuntu 16.04 - mantém um aplicativo x86_64 em execução

0

Eu tenho uma pergunta (aparentemente) simples, de como manter um aplicativo x86_64 "vivo" em um servidor Ubuntu. Inicialmente e através de grande esforço (eu sou muito inexperiente com o Ubuntu / Linux), eu era capaz de tê-lo na inicialização, no entanto, o aplicativo parece "morrer" de vez em quando de qualquer maneira.

Eu tentei fazer o aplicativo em um serviço, assim:

[Unit]
Description=runs the mmo
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/root/mmo/MMO.x86_64
Restart=on-failure

[Install]
WantedBy=multi-user.target

e carregou via ftp para "/ etc / systemd / system" no meu servidor e definir as permissões para 777, no entanto o arquivo que eu enviei (o ícone) parece diferente dos outros arquivos .service então eu acho que fiz algo errado

link para captura de tela do arquivo no servidor

(parece um documento de texto, enquanto os outros parecem com atalhos para pastas, mesmo que eu chame o meu .service também)

o que estou fazendo errado? obrigado antecipadamente

root @ server1: ~ # systemctl status mmo * mmo.service - executa o mmo    Carregado: erro (Razão: argumento inválido)    Ativo: falhou (Resultado: sinal) desde Qui 2018-01-04 02:48:53 UTC; 2 dias atrás  PID principal: 757 (código = morto, sinal = KILL)

Jan 06 13:44:41 server1.nwg.website systemd 1 : mmo.service: Serviço tem Reiniciar Aviso: o diário foi rotacionado desde que a unidade foi iniciada. Saída de log é incompleta linhas 1-7 / 7 (END) * mmo.service - executa o mmo    Carregado: erro (Razão: argumento inválido)    Ativo: falhou (Resultado: sinal) desde Qui 2018-01-04 02:48:53 UTC; 2 dias atrás  PID principal: 757 (código = morto, sinal = KILL)

EDIT / progress: Agora é possível iniciar o serviço (mais informações nos comentários longos abaixo), no entanto, quando tento adicionar "Restart = on-failure", ele apresenta o erro onde reclama que o serviço foi reiniciado - tentei alterá-lo para simples, mas isso não ajudou - o que eu faço?

    
por Yuriy Nikshych 06.01.2018 / 13:40

1 resposta

0

Seus passos estavam corretos até agora. Eu recomendaria definir as permissões para 644 como o arquivo de serviço não precisa ser executável.
Você também tem que executar systemctl daemon-reload para pegar o novo arquivo .service . Se você fizer mudanças neste arquivo, você tem que executar este comando para pegar as mudanças também.

Para que seu serviço seja reiniciado, você pode adicionar a opção Restart na seção [Service] .

...
[Service]
...
Restart=on-failure
...

Você também pode adicionar a opção da seguinte maneira, para controlar o intervalo entre as tentativas de reinicialização. O padrão parece ser 100ms .

RestartSec=

Para mais detalhes, consulte man systemd.service .

    
por Thomas 06.01.2018 / 13:49