2016-11-21 87 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甚至不需要在新线程中启动。只是否认它。 –