AWS AMI Linux上的pipe理员设置

我试图让主pipe工作,以确保我的队列系统始终运行。

下面是我采取的步骤,我从各种来源拼凑起来(以超级用户或超级用户的身份)

  1. 冉:

    # easy_install supervisor # echo_supervisord_conf > /etc/supervisord.conf # vi supervisord.conf 
  2. 将以下内容粘贴到文件结尾处:

     command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen 
  3. 冉:

     # supervisord -c /etc/supervisord.conf # supervisorctl supervisor> status supervisor> 

    它不显示任何东西。

  4. 冉:

     # service supervisord reload supervisord: unrecognized service 

要获得supervisord作为服务运行,您需要一个/etc/init.d/supervisord文件。 我使用了https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec和mods来匹配easy_install将二进制文件放在( /usr/local/bin/ )的path,并find了pid和login/var/run//var/log/

我只是花了几个小时在这个,试图让主pipe和亚马逊Linux AMI发挥不错。 我正在经历你刚刚提到的症状。

有些怪癖:

  • 继续并在任何supervisordsupervisorctl命令中包含-c /etc/supervisord.conf (或任何您的path),并确保您每次都从同一个用户运行。
  • 在你的/etc/supervisord.conf ,当你追加这个命令的时候,请确保你的名字/etc/supervisord.conf加上了'program:',如下所示:

     [program:queue] command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen 

一旦我做了上面的事情,主pipe最后会认出队列进程/程序。

我还没有得到sudo service supervisor restart认可主pipe作为服务 – 我怀疑这是因为我没有一个暴发户脚本,我已经看到在less数地方提到。 不知道我在这一点上需要一个。

我使用的一些debugging技术:

  • ps aux | grep super ps aux | grep super ,看看它是否运行
  • sudo vim编辑/etc/supervisord.confsudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf然后availreloadupdate等来更新(而不是编辑.eexxtensions并推送到弹性beanstalk每次)