2011-10-18 114 views
3

我有一個Capistrano的配方用於部署的Node.js應用重新啓動的Node.js與永遠

task :start, :roles => :app do 
    run "cd #{current_path} && NODE_ENV=#{node_env} forever start socket-server.js" 
end 

task :stop, :roles => :app do 
    run "cd #{current_path} && NODE_ENV=#{node_env} forever stop socket-server.js" 
end 

task :restart, :roles => :app do 
    run "cd #{current_path} && NODE_ENV=#{node_env} forever restart socket-server.js" 
end 

的問題是「重啓」任務,應該有,如果服務器已經在運行的檢查。

因爲永久重啓一個沒有運行的服務器槽不起作用,所以我需要在它沒有運行時先運行它。但我怎麼能做這個檢查?

回答

0

使您的重新啓動任務調用停止和啓動任務。

task :restart do 
    stop 
    sleep 5 
    start 
end