我正在关注#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
。但如果我将运行更改为sudo:sudo "/etc/init.d/unicorn_#{application} #{command}"
,则会获得sudo: /etc/init.d/unicorn_appname: command not found
。
命令真的不存在,或sudo
和run
彼此不同?
答案 0 :(得分:0)
您正在获得权限被拒绝,因为正常用户被禁止进入/etc/init.d /
您找不到命令,因为应用程序可能不正确或未设置。基本上,/ etc / init.d / unicorn_appname存在吗?可能不是。
你不应该将run更改为sudo,你应该使用run“#{sudo} ...”或者运行“#{try_sudo} ...”无论如何。