2015-02-28 7 views
6

l'unità di servizio è:Systemd Servizio jar file viene "operazione scaduta" errore dopo pochi minues o rimanere in modalità "attivazione"

[Unit] 
Description=test 
After=syslog.target 
After=network.target 

[Service] 
Type=forking 
ExecStart=/bin/java -jar /home/ec2-user/test.jar 
TimeoutSec=300 

[Install] 
WantedBy=multi-user.target 

inizia bene per 1-4 minues. Ma più tardi non riesce:

tail/var/log/messages:

Feb 27 18:43:44 ip-172-31-40-48 systemd: Reloading. 
Feb 27 18:44:06 ip-172-31-40-48 systemd: Starting test... 
Feb 27 18:44:06 ip-172-31-40-48 java: 5.1.73 
Feb 27 18:44:06 ip-172-31-40-48 java: Starting the internal [HTTP/1.1] server on port 8182 
Feb 27 18:49:06 ip-172-31-40-48 systemd: test.service operation timed out.Terminating. 
Feb 27 18:49:06 ip-172-31-40-48 systemd: test.service: control process exited, code=exited status=143 
Feb 27 18:49:06 ip-172-31-40-48 systemd: Failed to start test. 
Feb 27 18:49:06 ip-172-31-40-48 systemd: Unit test.service entered failed state. 

systemctl stato test.service (mentre soggiorni restarting- in modalità attiva): Test di stato

test.service - Setsnew 
Loaded: loaded (/etc/systemd/system/test.service; enabled) 
Active: activating (start) since Sun 2015-03-01 14:29:36 EST; 2min 30s ago 
Control: 32462 (java) 
CGroup: /system.slice/test.service 

systemctl. il servizio (dopo fallire):

test.service - test 
Loaded: loaded (/etc/systemd/system/test.service; enabled) 
Active: failed (Result: exit-code) since Fri 2015-02-27 18:49:06 EST; 18min ago 
Process: 27954 ExecStart=/bin/java -jar /home/ec2-user/test.jar (code=exited, status=143) 
  • quando run ning the jar in command line funziona perfettamente.
  • provato a cambiare la posizione vaso perché ho pensato che è un problema di autorizzazioni
  • SELinux è spento

Come posso risolvere il problema in modo da poter avviare il barattolo al boot? ci sono alternative? (RHEL7 non include il comando di servizio)

risposta

16

Hai effettuato il tipo di servizio forking, ma questo servizio non biforca. Funziona direttamente. Così systemd ha atteso cinque minuti affinché il programma si inizializzasse da solo, e non è mai successo. Il tipo corretto per tale servizio è simple.

È stato disabilitato anche SELinux, che è un altro problema da risolvere.

+0

Questo ha risolto il mio problema. Grazie. – Omid1989