gpt4 book ai didi

ubuntu - 重启 Upstart 实例进程

转载 作者:太空宇宙 更新时间:2023-11-03 16:41:11 25 4
gpt4 key购买 nike

我正在运行一个 worker 的多个实例,如以下答案所述:Starting multiple upstart instances automatically

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

要启动我的 worker,我可以这样做:

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

现在 my-workers 将保持状态:因为工作发生在 pre-start 中,所以 my-workers 主进程不会存在,所以不会退出。 stop on stopping my-workers 会导致 worker 在 my-workers 停止时停止。然后当然当它再次启动时它会再次启动工作人员。

(仅供引用,stop on shutdown 什么都不做,因为 shutdown 不是系统事件。man upstart-events 用于所有定义的事件) 所以你还应该将 my-workers 更改为 stop on runlevel [06]

关于ubuntu - 重启 Upstart 实例进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12084025/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com