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]

相关文章

目录前言一、创建Hadoop用户二、更新apt和安装Vim编辑器三、...
原文连接:https://www.cnblogs.com/yasmi/p/5192694.html ...
电脑重启后,打开VirtualBox,发现一直用的虚拟机莫名的消失...
参见:https://blog.csdn.net/weixin_38883338/article/deta...
Ubuntu 18.04 LTS 已切换到 Netplan 来配置网络接口。Netpla...
介绍每个 Web 服务都可以通过特定的 URL 在 Internet 上访问...