.INI
noções básicas de sintaxe de arquivos
[Unit] Description = My Portal Service After network.target = my-portal.service
Na seção Unit
, a chave deve ser After
e o valor é (por exemplo) network.target my-portal.service
. Você tem uma chave de After network.target
e um valor my-portal.service
. Essa chave não significa nada para o sistema, como a mensagem lhe disse.
Outright systemd Casa do Horror coisas
Fazer um serviço ordenado para iniciar após ele mesmo é ridículo. Mas isso é apenas a ponta do iceberg aqui.
Type = forking ExecStart = /usr/local/bin/my-portal.sh start ExecStop = /usr/local/bin/my-portal.sh stop ExecReload = /usr/local/bin/my-portal.sh reload … PATH_TO_LOG="/var/log/egp" … PID_PATH_NAME=/var/run/${SERVICE_NAME}-pid nohup … >> ${PATH_TO_LOG}/${SERVICE_NAME}.out 2>&1&
Tudo isso é apenas o padrão clássico, estranhamente predominante com Java, de erguer uma confusão tola de andaimes totalmente desnecessários e errôneos.
Você não precisa do script de shell . Você certamente não precisa do mecanismo de arquivo PID instável e perigoso que ele tenta empregar. Nem você precisa de um mecanismo de registro manual que dependa de um mecanismo logrotate / newsyslog frágil, e não pode impedir que o volume do seu disco seja preenchido com a saída de log (gravado por um processo com privilégios de superusuário; espaço de disco de emergência reservado) em muitos casos.
Use os recursos do gerenciador de serviços que existem:
#/etc/systemd/system/my-portal.service [Unit] Description=My Portal Service Documentation=https://unix.stackexchange.com/a/434726/5132 After=network.target [Service] SyslogIdentifier=my-service Environment=SERVICE_NAME=my-service Environment=PATH_TO_TARGET="/opt/apps/egp/stage/my-service/target" ExecStart=/usr/bin/env java -jar ${PATH_TO_TARGET}/${SERVICE_NAME}.jar server ${PATH_TO_TARGET}/${SERVICE_NAME}.yml [Install] WantedBy=multi-user.target
Para ler o log do serviço, use apenas journalctl
da maneira usual. Um gerenciador de serviços rastreia processos lembrando seus IDs de processo de quando gerou-os e não precisa do mecanismo de arquivos PID frágil e perigoso.
Leitura adicional
- Jonathan de Boyne Pollard (2015). Envolvendo o Apache Tomcat em muitas camadas extras sem sentido Casa do Horror.
- Jonathan de Boyne Pollard (2015). A casa do sistema de terror . Respostas frequentemente dadas.
- Como evitar que o / usr / bin / env seja marcado nos logs do systemd como o executável
- configure o daemon java com o systemd
- Jonathan de Boyne Pollard (2016). Não use
logrotate
ounewsyslog
neste século. . Respostas frequentemente dadas.