.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
logrotateounewsyslogneste século. . Respostas frequentemente dadas.