Acabei de mudar para o servidor 16.04 do servidor 14.04. Com o Upstart eu costumava iniciar meu servidor com um arquivo que eu tinha em /etc/rcS.d chamado M95. O M95 foi chamado por /etc/rc.local. Agora com o systemd eu escrevi um arquivo em / etc / systemd / system chamado my.service. Parece assim:
[Unit]
Description=MyService
[Service]
WorkingDirectory=/etc
ExecStart=/bin/sh rc.local
[Install]
WantedBy=multi-user.target
Quando eu digito "/ bin / sh rc.local" na linha de comando, meu servidor é iniciado.
Quando tento iniciar o serviço fazendo "systemctl start my.service" nada acontece.
As linhas relevantes no journalctl -b são:
Started MyService.
eth0 ...(basically the info I see from ifconfig)
root : TTY=unknown ; PWD=/etc ; USER=root ; COMMAND=/etc/rcS.d/M95
pam_unix(sudo:session): session opened for user root by (uid=0)
$File not found:: /new/den-routes
udhcpd already running
pam_unix(sudo:session): session closed for user root
/bin/rm: cannot remove '/var/log/rewriting-net-rules': No such file or directory.
No rc.local, parece:
#!/bin/sh -e
...
sudo /etc/rcS.d/M95
/bin/rm /var/log/rewriting-net-rules
exit 0
No M95, ele inicia o udhcpd (que é onde a mensagem "udhcpd já está em execução") e no final inicia o servidor dizendo:
cd /new
/bin/sh StartServer&
Parece que ele chega ao M95 porque as mensagens estão sendo registradas a partir dele, mas o servidor não inicia. Quando executo esses arquivos na linha de comando, funciona, mas como o serviço não funciona. Eu não estou muito familiarizado com o systemd, então não tenho idéia se estou fazendo isso corretamente. Por uma semana eu tenho lido exemplos e tutoriais para isso, mas ainda não tenho certeza de como isso funciona e como o arquivo de serviço deve ser escrito.
Edit: Aqui está o meu arquivo StartServer:
#!/bin/bash
nohup /jre/jdk1.8.0_101/jre/bin/myserver -Xrs -Xmx1000m -jar /new/MyServer.jar nowd &
Ele funciona muito bem quando eu inicio a partir da linha de comando. Ele é executado quando eu chamo de my.service. Eu coloquei alguns echos para ver que ele passa pelo arquivo inteiro, mas myserver e MyServer.jar não iniciam por algum motivo.