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 .

それで、コマンドは本当に存在しないのですか、それともsudorunは互いに異なりますか?

4

1 に答える 1

0

通常のユーザーが /etc/init.d/ 内にいることが禁止されているため、許可が拒否されています

アプリケーションが正しくないか、設定されていない可能性があるため、コマンドが見つかりません。基本的に、/etc/init.d/unicorn_appname は存在しますか? おそらくそうではありません。

いずれにせよ、run を sudo に変更するべきではありません。とにかく、run "#{sudo} ..." または run "#{try_sudo} ... " を使用する必要があります。

于 2013-10-04T19:01:30.613 に答える