Tôi đang chạy nhiều trường hợp của một người lao động như mô tả trong câu trả lời này: Starting multiple upstart instances automaticallyKhởi động lại Upstart dụ xử lý
Câu hỏi: Tôi có thể khởi động lại tất cả các trường cùng một lúc?
Để bắt đầu công nhân của tôi, tôi có thể làm:
initctl khởi my-công nhân
Mà sau đó cho phép tôi làm:
nhân tình trạng initctl N = 1 công nhân (1) bắt đầu/chạy, xử lý 551
nhân viên trạng thái initctl N = 2 công nhân (2) bắt đầu/Chạy, quá trình 552
Có cách nào để làm một cái gì đó như thế này:
initctl restart my-công nhân
Tôi muốn để có thể khởi động lại tất cả các trường mà không cần phải để biết có bao nhiêu người đang chạy.
Đây là của tôi 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
Và 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
đưa tôi một lúc để hiểu ý bạn, nhưng một khi tôi nhận được ... * tâm thổi * – Evgeny
@Evgeny cùng ở đây, haha. Nếu như tôi, và có thể là Evgeny, bạn chỉ cần dành 5 phút để hiểu những gì đang diễn ra ở đây: về cơ bản my-workers.conf sinh ra nhiều kịch bản và lối thoát mới, nhưng mỗi worker.conf giờ đây có dòng 'dừng việc dừng công nhân của tôi ', vì vậy khi bạn cố gắng ngăn chặn quá trình công nhân của tôi đã ngừng hoạt động, công nhân vẫn sẽ lắng nghe và chết. Vì vậy, "khởi động lại" công nhân của tôi, mặc dù nó đã không thực sự chạy trước, có tác dụng giết chết các công nhân (dừng lại) và chạy script khởi động lại (bắt đầu) một lần nữa, sinh ra chúng một lần nữa. – Mahn
Nó hoạt động nhưng nó là khá hackish. 'service my-workers start' sẽ treo, trên thực tế. Tài liệu Upstart nêu rõ 'Tất cả các tệp công việc phải có một tập lệnh exec hoặc script stanza.'' trước khi bắt đầu và kịch bản lệnh dừng - Chúng không được mong đợi để bắt đầu quá trình, trên thực tế, chúng không thể.'. Có lẽ tốt hơn là tạo một công việc khác để dừng hoặc khởi động lại công nhân. –