ฉันแรกถามคำถามนี้ใน StackOverflow จากนั้นตระหนักว่านี่น่าจะเป็นสถานที่ที่ดีกว่า
ฉันมีการตั้งค่า bluepill เพื่อตรวจสอบกระบวนการล่าช้าของฉัน (แอปพลิเคชัน Ruby On Rails)
ใช้ Ubuntu 12.10
ฉันเริ่มต้นและการตรวจสอบการให้บริการ bluepill upstart
ตัวเองโดยใช้อูบุนตูของ การกำหนดค่าเริ่มต้นของฉันอยู่ด้านล่าง ( /etc/init/bluepill.conf
)
description "Start up the bluepill service"
start on runlevel [2]
stop on runlevel [016]
expect daemon
exec sudo /home/deploy/.rvm/wrappers/<app_name>/bluepill load /home/deploy/websites/<app_name>/current/config/server/staging/delayed_job.bluepill
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
ฉันได้พยายามยังมีแทนexpect fork
expect daemon
ฉันได้ลองลบexpect...
สายอย่างสมบูรณ์
เมื่อบู๊ตเครื่อง bluepill ก็เริ่มทำงานได้ดี
$ ps aux | grep blue
root 1154 0.6 0.8 206416 17372 ? Sl 21:19 0:00 bluepilld: <app_name>
PID ของกระบวนการ bluepill คือ 1154 ที่นี่ แต่upstart
ดูเหมือนว่าจะติดตาม PID ที่ไม่ถูกต้อง มันกำลังติดตาม PID ซึ่งไม่มีอยู่
$ initctl status bluepill
bluepill start/running, process 990
ฉันคิดว่ามันกำลังติดตาม PID ของsudo
กระบวนการซึ่งเริ่มกระบวนการ bluepill
นี้จะป้องกันไม่ให้กระบวนการ bluepill จากการ respawned ถ้าฉันฆ่าอย่างแข็งขัน bluepill kill -9
ใช้
ยิ่งกว่านั้นฉันคิดว่าเนื่องจากการติดตาม PID ที่ไม่ถูกต้องการรีบูต / ปิดเครื่องก็ค้างและฉันต้องรีเซ็ตเครื่องอย่างหนักทุกครั้ง
สิ่งที่อาจเป็นปัญหาที่นี่?
อัปเดต :
ปัญหายังคงมีอยู่ ณ วันนี้ (3 พฤษภาคม 2558) บน Ubuntu 14.04.2
ปัญหาไม่ได้เกิดจากการใช้ sudo ฉันไม่ได้ใช้ sudo อีกต่อไป การกำหนดค่าเริ่มต้นที่อัปเดตของฉันคือ:
description "Start up the bluepill service"
start on runlevel [2]
stop on runlevel [016]
# Restart the process if it dies with a signal
# or exit code not given by the 'normal exit' stanza.
respawn
# Give up if restart occurs 10 times in 90 seconds.
respawn limit 10 90
expect daemon
script
shared_path=/home/deploy/websites/some_app/shared
bluepill load $shared_path/config/delayed_job.bluepill
end script
เมื่อบูทเครื่องโปรแกรมจะโหลดขึ้นมา แต่คนธรรมดายังคงติดตาม PID ผิดดังที่อธิบายไว้ข้างต้น
วิธีแก้ปัญหาที่กล่าวถึงในความคิดเห็นอาจแก้ไขปัญหาการหยุด ฉันยังไม่ได้ลองเลย
ps aux | grep 990
ควรทำ แต่pstree 990
อาจมีข้อมูลมากขึ้น