我有一个用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"
如果我编辑脚本并首先放置exit(0)
,则退出。
我知道它到达出口(0),因为我已在其上方放置了一个印刷品。
答案 0 :(得分:0)
最终它是实际的脚本。 它正在运行一个python脚本
PYTHON_ENV=#{environment} nohup python #{APP_FILE_NAME} > #{environment}.log
添加&最后
PYTHON_ENV=#{environment} nohup python #{APP_FILE_NAME} > #{environment}.log &