Ruby Unicorn无法写入pid文件
我正在使用Capistrano将Ruby on Rails应用程序部署到Linode VPS。我使用Unicorn作为应用服务器,Nginx作为代理。我的问题是,由于明显的权限问题,我无法启动Unicorn,但我很难找到它 使用此Capistrano任务启动Unicorn:Ruby Unicorn无法写入pid文件,ruby,deployment,capistrano,file-permissions,unicorn,Ruby,Deployment,Capistrano,File Permissions,Unicorn,我正在使用Capistrano将Ruby on Rails应用程序部署到Linode VPS。我使用Unicorn作为应用服务器,Nginx作为代理。我的问题是,由于明显的权限问题,我无法启动Unicorn,但我很难找到它 使用此Capistrano任务启动Unicorn: task:start,:roles=>:app,:except=>{:no\u release=>true}do 跑64 pid“/home/deploy/apps/shared/pids/unicorn.pid” #设置日
task:start,:roles=>:app,:except=>{:no\u release=>true}do
跑64
pid“/home/deploy/apps/shared/pids/unicorn.pid”
#设置日志文件的路径
stderr_path“/home/deploy/apps/gogy/current/log/unicorn.stderr.log”
标准路径“/home/deploy/apps/gogy/current/log/unicorn.stdout.log”
我在“部署”用户和组下使用Capistrano进行部署,这也是Unicorn应该运行的
有人知道为什么Unicorn不能写出pid文件吗?任何帮助都将不胜感激
- 迈克
那么,目录
/home/deploy/apps/shared/pids
是否存在?如果没有,您应该调用mkdir
来创建它。Unicorn进程正在后台运行(-d),
类型
杀死正在运行的独角兽进程,然后再次启动。在capistrano 3中;如果我们将角色更改为:all,那么在部署capistrano时;
警告[正在跳过]没有与…匹配的主机。
部署后,所有符号链接不再工作。如果符号链接数组中有tmp/pids文件夹,则unicorn找不到tmp/pids文件夹,并表示unicorn.pid不可写
所以我们必须使用<代码>角色:%w{web app db}而不是角色:全部
production.rb上的示例服务器行
服务器'YOUR_server_IP',用户:'YOUR_DEPLOY_user',角色:%w{web app db},ssh_选项:{forward_agent:true}
你说得对。我使用的绝对路径不正确。引用了正确的目录,生活中的一切又好了。谢谢你的帮助。
ps aux | grep unicorn