script systemd para iniciar meu servidor de aplicativos - lvalue desconhecido 'StartLimitIntervalSec' na seção 'Unidade'

3

Eu tenho um arquivo de configuração upstart como mostrado abaixo, que funciona bem no Ubuntu 14:

#/etc/init/data_server.conf
#sudo start data_server
#sudo stop data_server
#sudo status data_server

start on runlevel [2345]
stop on runlevel [016]

chdir /opt/hold/data_server
respawn

post-start script
    echo "data server started at 'date +"%F %T"' on 'hostname -f'" | mailx -r "[email protected]" -s "data server Started" "[email protected]"
end script

post-stop script
  sleep 30
end script

limit core unlimited unlimited
limit nofile 100000 100000
setuid goldy
exec ./proc_server --init_file=../config/tree.init --port=8080 --dir=/data/hold/ --max_sec=2400 --max_mb=100 --active=5

Agora estamos mudando para o Ubuntu 16, então não podemos usar upstart e parece que precisamos usar systemd aqui. Tenho que ter certeza de que sempre que o sistema for reinicializado ou o aplicativo for eliminado, ele deve iniciar meu script systemd automaticamente, o que por sua vez inicia meu data server . Então eu criei abaixo o script systemd : Deixe-me saber se este é o jeito certo como eu estou fazendo pela primeira vez?

[Unit]
Description=test server
After=network.target
StartLimitIntervalSec=0

[Service]
User=goldy
Group=goldy
Type=simple
WorkingDirectory=/opt/hold/data_server
ExecStart=/opt/hold/data_server/proc_server --init_file=../config/tree.init --port=8080 --dir=/data/hold/ --max_sec=2400 --max_mb=100 --active=5
Restart=always
RestartSec=3
LimitNOFILE=100000
LimitCORE=infinity

[Install]
WantedBy=multi-user.target

Sempre que executo o script acima, isso me causa esse erro, não tenho certeza do que está errado?

[/lib/systemd/system/queue_server_two.service:3] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit'
    
por user1950349 27.03.2018 / 19:48

1 resposta

8

Você provavelmente está comparando systemd docs que leu on-line para uma versão diferente, em vez de usar os documentos em seu sistema que correspondem à sua versão.

Verifique man systemd.unit no seu próprio sistema. Você pode achar que na sua versão, a diretiva é nomeada

StartLimitInterval= e deve ser usado [Service] , não [Unit] .

Encontrei a resposta pesquisando systemd StartLimitIntervalSec .

    
por 27.03.2018 / 20:38