0

我正在关注#335 Deploying to a VPS。在deploy.rb,

%w[start stop restart].each do |command|
desc "#{command} unicorn server"
task command, roles: :app, except: {no_release: true} do
  run "/etc/init.d/unicorn_#{application} #{command}"
end

结尾

当我跑步时cap deploy:start,我得到了sh: /etc/init.d/unicorn_appname: Permission denied。但是,如果我将 run 更改为 sudo: sudo "/etc/init.d/unicorn_#{application} #{command}",我会得到sudo: /etc/init.d/unicorn_appname: command not found .

那么该命令真的不存在,或者sudo彼此run不同吗?

4

1 回答 1

0

您的权限被拒绝,因为普通用户被禁止进入 /etc/init.d/

您收到 command not found 因为应用程序可能不正确或未设置。基本上, /etc/init.d/unicorn_appname 是否存在?可能不是。

无论如何,您都不应该将 run 更改为 sudo,您应该使用 run "#{sudo} ..." 或 run "#{try_sudo} ... "。

于 2013-10-04T19:01:30.613 回答