2013-09-23 27 views
0

我想使用Capistrano的部署新代碼到Amazon EC2實例和突然,我得到這個錯誤:Capistrano的和EC2:SH:1:殺失敗

servers: ["IP"] 
[IP] executing command 
*** [err :: IP] cat: 
*** [err :: IP] /home/deployer/fileto/current/tmp/pids/unicorn.pid 
*** [err :: IP] : No such file or directory 
*** [err :: IP] 
*** [err :: IP] sh: 1: kill: 
*** [err :: IP] Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or 
*** [err :: IP] kill -l [exitstatus] 
*** [err :: IP] 
    command finished in 371ms 
failed: "sh -c 'kill -s USR2 `cat /home/deployer/project_name/current/tmp/pids/unicorn.pid`'" on IP 

兩個小時前,我成功地部署代碼,但現在當我嘗試它時,我收到了此錯誤消息。

如果2小時前一切正常,那麼實例和整個部署過程如何發生?

編輯:當我運行

殺-s USR2 cat /home/deployer/fileto/current/tmp/pids/unicorn.pid

我得到

cat: /home/deployer/fileto/current/tmp/pids/unicorn.pid: No such file or directory 
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec] 
+0

只是爲了確保......在'tmp'內創建'pids'文件夾,如果它不存在,那麼執行你的命令。還要檢查文件系統權限,以便此進程在運行時可以創建'unicorn.pid'文件。 – suvankar

+0

「pids」文件夾存在,我如何檢查權限? – user1946705

+0

'$ ls -ld directory'檢查權限(也檢查文件所有者)並提供寫權限。 'sudo chmod -R 777 tmp' – suvankar

回答

0

這是需要停止部署錯誤條件?你可以添加||真到kill命令結束時,在kill命令之前添加:on_error =>繼續執行任務,或在[-d /home/deployer/fileto/current/tmp/pids/unicorn.pid]前加上前綴。