内联脚本通过Vagrant完成后,进程停止

时间:2017-06-14 19:21:12

标签: shell vagrant weblogic

在Vagrant中,我运行一个启动Weblogic和NodeManager的内联脚本

/opt/weblogic/user_projects/domains/custom/startWeblogic.sh &
/opt/weblogic/user_proejcts/domains/custom/bin/startNodeManager &

ps -ef表示在运行内联脚本时两个进程都在运行。但是,如果我在客户机上运行ssh并运行ps -ef,则无法找到任何进程。有没有办法在内联脚本之后保持进程运行?

1 个答案:

答案 0 :(得分:1)

目前您正在运行脚本,但其执行为root用户,因此仅为此用户添加了所有行。您想使用privileged选项

  

privileged(boolean) - 指定是否执行shell脚本   作为特权用户(sudo)。默认情况下,这是“true”。

您将需要与vagrant用户一起运行脚本,以便您可以更改为

config.vm.provision "shell", inline: "/vagrant/scripts/install.sh",  privileged: false

然后,您应该使用nohup在会话停止后保持脚本运行

nohup /opt/weblogic/user_projects/domains/custom/startWeblogic.sh  &> /home/vagrant/startWeblogic.out&
nohup /opt/weblogic/user_proejcts/domains/custom/bin/startNodeManager  &> /home/vagrant/startNodeManager.out&