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

Process stops after inline script is done via Vagrant

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

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

ps -ef 显示当 运行ning 内联脚本时,两个进程都 运行ning。但是,如果我在来宾计算机中使用 ssh 和 运行 ps -ef,则找不到这两个进程。有没有办法在内联脚本之后保持进程 运行ning?

目前您 运行 正在运行脚本,但它是以 root 用户的身份执行的,因此所有行都仅为该用户添加。您要使用 privileged 选项

privileged (boolean) - Specifies whether to execute the shell script as a privileged user or not (sudo). By default this is "true".

您需要 运行 流浪用户的脚本,以便您可以更改为

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

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

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&