ubuntu – 重新启动Upstart实例进程

前端之家收集整理的这篇文章主要介绍了ubuntu – 重新启动Upstart实例进程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在运行一个工人的多个实例,如此答案中所述: Starting multiple upstart instances automatically

问题:我可以一次重新启动所有实例?

要开始我的工人,我可以做:

initctl start my-workers

这使我能做:

initctl status worker N=1 worker (1) start/running,process 551

initctl status worker N=2 worker (2) start/running,process 552

有办法做这样的事情:

initctl restart my-workers

我希望能够重新启动所有实例,而不必知道有多少正在运行。

这里是我的my-workers.conf

  1. start on stopped cloud-init
  2. stop on shutdown
  3.  
  4. env NUM_WORKERS=4
  5.  
  6. script
  7. for i in `seq 1 $NUM_WORKERS`
  8. do
  9. start worker N=$i
  10. done
  11. end script

和worker.conf

  1. stop on shutdown
  2.  
  3. chdir /path/to/current
  4.  
  5. respawn
  6.  
  7. instance $N
  8.  
  9. script
  10. exec su -c "/home/worker/.rvm/bin/rvm-shell -c 'bundle exec rake work 2>&1 >> /var/log/worker-$N.log'" worker
  11. end script
在worker.conf你只需要改变这一行:
  1. stop on shutdown

至:

  1. stop on stopping my-workers

并且改变my-workers.conf使用pre-start而不是script:

  1. pre-start script
  2. for i in `seq 1 $NUM_WORKERS`
  3. do
  4. start worker N=$i
  5. done
  6. end script

现在我的工人将保持状态:由于工作发生在pre-start,my-workers主进程不会存在,所以不会退出。停止停止我的工人导致工人停止每当我的工人停止。当然,当它再次启动它将再次启动工人。

(FYI,停止在关闭什么也不做,因为关闭不是一个系统事件。所有定义的事件的人upstart事件)所以你也应该改变我的工人停止运行级别[06]

猜你在找的Ubuntu相关文章