2017-09-12 54 views
1

systemd單元文件,我有這個systemd單元文件啓動遊戲應用:返回錯誤消息,當啓動失敗,對playframework

# Systemd unit file for playapp 
[Unit] 
Description=Run Server for playapp 
Wants=syslog.target network.target 
After=network.target 

[Service] 
Type=simple 
PIDFile=/opt/playapp/play.pid 

ExecStart=/opt/playapp/bin/playapp 
ExecStop=/bin/kill $MAINPID 
Restart=always 
SuccessExitStatus=143 

[Install] 
WantedBy=multi-user.target 
  • 隨着Type=simple存在,如果啓動時沒有反饋systemctl start playapp.service失敗。
  • Type=forking如果啓動失敗,則會出現錯誤,但如果啓動時沒有錯誤,則systemctl start playapp.service會保留在shell的前臺。

用systemd啓動一個應用程序的最佳方法是什麼? (如果啓動不成功,會顯示錯誤消息)

回答

1

有沒有簡單的方法:該服務只是用一些參數啓動java。如果事情失敗(通常在DI初始化期間),服務終止。該服務(閱讀:Java的啓動)是成功的:它只是在啓動過程中結束。

Systemd注意到並根據需要重新啓動它。然而,這個錯誤是針對播放日誌文件的,對此systemd沒有注意到。我們只是接受這個事實,如果需要的話尾部(實際上,我們將所有日誌記錄重定向到中央systlog服務器,但這只是一個實現細節)。

+0

感謝您的答案,不幸的是我不能upvote答案呢(名譽太少)。 – chloesoe

相關問題