我通过Vagrantfile的内联shell配置在vagrant up
上运行shell脚本。其中一个命令启动一个通常在前台运行的tomcat Web服务器。
我的困境是:a)vagrant shell脚本中的命令应该在后台退出或运行,以便提示返回给用户正确,b)如果我使用&
将输出发送到后台输出不可见,用户不知道Web服务器何时完成启动。
我要么需要一种方法将输出发送到后台并告诉用户服务器何时启动,或者在服务器启动后发送到后台的方式。没有搞乱maven / tomcat方面,我也没有办法做到这一点。
$script = <<-SCRIPT
# other commands here
mvn tomcat7:run &
SCRIPT
config.vm.provision "shell", inline: $script, privileged: false, run: "always"
答案 0 :(得分:2)
我使用nohup
命令并在特定日志文件中重定向命令的输出 - 它没有完全回答并告诉用户服务器何时启动
这是我运行的命令的一个例子
nohup java -jar /test/selenium-server-standalone-$1.jar -role hub &> /home/vagrant/nohup.grid.out&
如果从配置shell中您想要尽可能多地向用户提供信息,您可以使用5/10秒的睡眠(取决于您的部署),然后运行tail -20 <log_file>
以便提供用户完成任务进度状态