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

start on stopped cloud-init
stop on shutdown

env NUM_WORKERS=4

script
  for i in `seq 1 $NUM_WORKERS`
    do
      start worker N=$i
    done
end script

和worker.conf

stop on shutdown

chdir /path/to/current

respawn

instance $N

script
  exec su -c "/home/worker/.rvm/bin/rvm-shell -c 'bundle exec rake work 2>&1 >> /var/log/worker-$N.log'" worker
end script
在worker.conf你只需要改变这一行:
stop on shutdown

至:

stop on stopping my-workers

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

pre-start script
  for i in `seq 1 $NUM_WORKERS`
  do
    start worker N=$i
  done
end script

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

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

猜你在找的Ubuntu相关文章