11 votos

systemd secuencia de comandos para iniciar mi servidor de aplicaciones Desconocidas, de lvalue 'StartLimitIntervalSec' en la sección 'Unidad'

Tengo un advenedizo archivo de configuración como se muestra a continuación, que funciona bien en 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 "abc@host.com" -s "data server Started" "pqr@host.com"
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

Ahora nos estamos moviendo a Ubuntu 16 así que no podemos usar upstart y parece que necesita para utilizar systemd aquí. Tengo para asegurarse de que cuando se rearranca el sistema o la aplicación está muerto, deben iniciar mi systemd secuencia de comandos de forma automática, lo que a su vez iniciar mi data server. Así que se me ocurrió a continuación systemd script: quiero saber si esta es la manera correcta de como lo estoy haciendo por primera 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

Cuando corro el script de arriba, me da este error, no estoy seguro de cuál es incorrecto?

[/lib/systemd/system/queue_server_two.service:3] Unknown lvalue 'StartLimitIntervalSec' in section 'Unit'

19voto

Mark Stosberg Puntos 548

Es probable comparando systemd docs que he leído en línea para una versión diferente en lugar de utilizar la documentación en el sistema que coinciden con su versión.

Compruebe man systemd.unit en su propio sistema. Usted puede encontrar que en su versión, la directiva se denomina

StartLimitInterval= y debe utilizarse [Service], no [Unit].

He encontrado la respuesta por la búsqueda de systemd StartLimitIntervalSec.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: