2016-11-19 83 views
0

我已經中啓用以下systemd文件: /etc/systemd/system/pirestservice.servicesystemd服務不運行

[Unit] 
Description=Raspberry Pi REST Service 
After=local-fs.target network.target 

[Service] 
Type=simple 
User=root 
ExecStart=/usr/local/piservice/startpiservice.sh 
Restart=always 

[Install] 
WantedBy=multi-user.target 

上面提到的shell腳本如下,並作出可執行。

#!/bin/bash 
sudo java -jar /usr/local/piservice/pirestservice-0.0.1-SNAPSHOT.jar server rest_metadata/template.yml 

如果我運行shell腳本,這dropwizard服務不啓動。如果我重新啓動,或者啓動從命令行的服務,該服務展示了運行,如果我做的:

ps -ef | grep pirest 

我會看到分配給該進程的PID號.......無論其在....服務沒有真正運行。我錯過了什麼?我只需要一個.service文件,還是有其他配置我缺少? .service文件是否應該位於另一個目錄中?

在一天結束時,我只想讓我的應用程序作爲守護程序/後臺服務運行。

僅供參考,我在安裝Ubuntu Mate 16的Raspberry Pi3上運行此操作。

感謝,

邁克

+0

你有類似於「按任意鍵退出」的東西,即您的服務被阻止等待在用戶輸入? –

回答

0

,在路徑java嗎? 服務腳本能否正確找到你的Dropwizard配置文件?

我的配置是這樣的:

[Service] 
ExecStart=/usr/bin/java -jar /opt/myservice/myservice.jar server /opt/myservice/application.yml 

注意,我使用絕對路徑爲Java二進制文件,併爲Dropwizard配置文件。如果你不想硬編碼你的配置文件的路徑,嘗試將其添加到服務文件中:

WorkingDirectory=/opt/myservice