1

我知道这个问题被问了很多,但我无法做到正确。我已经看过了:

我正在使用 capistrano 在 scala 中部署服务器。我的任务如下所示:

desc "Start server"
task :start do
    run "cd #{deploy_to} && ./sbt compile start-script"
    run "cd #{deploy_to} && export PORT=#{server_port} && export ENV=#{env} && nohup target/start > /dev/null 2>&1 &"
end

start-script是一个在 target/start 中创建脚本的 sbt 插件。当我运行任务时,输出是:

  * executing "cd /home/ubuntu/* && export PORT=* && export ENV=integration && nohup target/start > /dev/null 2>&1 &"
    servers: ["54.217.224.197"]
    [54.217.224.197] executing command
    command finished in 1015ms

但是我的服务器没有启动...当在命令末尾省略“&”时,服务器已启动但 capistrano 脚本被阻止。

  * executing "cd /home/ubuntu/* && export PORT=* && export ENV=integration && nohup target/start > /dev/null 2>&1"
    servers: ["54.217.224.197"]
    [54.217.224.197] executing command

提前感谢您的回答。

4

1 回答 1

2

我找到了解决方案,只需在末尾添加 pty: false

run "cd #{deploy_to} && export PORT=#{server_port} && export ENV=#{env} && nohup target/start > /dev/null 2>&1 &" pty: false
于 2013-08-06T12:12:35.867 回答