2016-11-21 117 views
0

我已經寫了jenkins工作,將我的軟件包部署到我的一臺服務器中。我正在使用debian軟件包管理系統。我通過sudo apt-get update命令更新所有機器包,並在deployment_script(我們製作.deb文件並指定要安裝的服務器)中安裝sudo apt-get install package_name所需的包。同樣,我正在使用啓動/停止軟件包的腳本複製到/etc/init.d/package_name。這個腳本可以帶參數啓動/停止。在我的debian postinst腳本中,我提到/etc/init.d/package_name開始啓動包。對於部署,我只需觸發jenkins作業並將deployment_script發送給作業。它可以安裝軟件包,然後調用postinst腳本,以便在預期的機器中正確地重新啓動服務。但在退出postinst腳本時,重新啓動的服務會死亡。任何幫助找到原因和如何解決它?重新啓動的服務,在debian postinst腳本中死亡。

回答

0

我開始我的服務,如sudo -u user_name java -server some_vm_options with jar of the package, configs > /dev/null &。 我只是將其更改爲sudo -u user_name nohup java -server some_vm_options with jar of the package, configs > /dev/null &。現在我開始的服務不會被殺死。

+0

http://stackoverflow.com/questions/19233529/run-bash-script-as-daemon - 該線程中接受的答案也是解決方案之一。 –

+0

會在新線程中運行java進程並使其無法工作? –

+0

@ user3152463甚至不需要在新線程中啓動。只是否認它。 –