远程ssh命令没有退出

时间:2015-02-12 20:43:22

标签: linux ssh google-cloud-storage gcloud

我有一个用ruby编写的重启脚本

#!/usr/bin/env ruby

require "#{DIR}/etc/control_helper"


###### MAIN program ################
case action
    when 'start'
         .....

    when 'stop'
          .....
    when 'restart'
        kill_the_old_process_if_needed(PORT_NUM, APP_NAME, APP_FILE_NAME)

        new_pid = start_a_new_process!(ENVIRONMENT, PORT_NUM, APP_FILE_NAME)
#here there is an **exit(0)**
        check_for_success_in_starting_new_process!(hostname, new_pid) 

end

从本地计算机运行代码:

ruby etc/control_app.rb restart production

但是从远程ssh运行它(jenkins机器,代码更改后) 不退出。

gcloud compute ssh remote_server --zone us-central1-a --command "cd /path/to/app; ruby etc/control_app.rb restart production"
  1. 如果我编辑脚本并首先放置exit(0),则退出。

  2. 我知道它到达出口(0),因为我已在其上方放置了一个印刷品。

1 个答案:

答案 0 :(得分:0)

最终它是实际的脚本。 它正在运行一个python脚本

PYTHON_ENV=#{environment} nohup python #{APP_FILE_NAME}  > #{environment}.log

添加&最后

PYTHON_ENV=#{environment} nohup python #{APP_FILE_NAME}  > #{environment}.log &