CentOS 6 และพุ่งพรวด


18

CentOS 6 ใหม่มาพร้อมกับ Upstart แทนที่ init ฉันพยายามแปลงไฟล์ / etc / inittab เป็นรูปแบบพุ่งพรวดใหม่ เซิร์ฟเวอร์นี้มีรายการ inittab เพียง 15 รายการเท่านั้นอย่างไรก็ตามเซิร์ฟเวอร์อื่นมี> 30 เราต้องการส่วน 'respawn' ของ inittab และพุ่งพรวดเป็นหลัก อย่างไรก็ตามฉันได้อ่านเอกสารธรรมดาทั้งหมดที่ฉันสามารถหาได้ (ซึ่งค่อนข้างทั้งหมดบน Ubuntu และเห็นได้ชัดว่าเป็นเวอร์ชั่นเก่ากว่าของการพุ่งพรวด) และไม่ไปไหน ฉันสามารถสร้างไฟล์ปรับแต่ง (ให้เรียกมันว่า /etc/init/test.conf) ไฟล์มีสิ่งนี้ (บันทึกย่อ, ไม่ระบุชื่อ)

start on runlevel [345]
stop on starting shutdown

respawn
#Comment about what it does
exec su -c "/usr/bin/ssh -2CNL 11111:127.0.0.1:11111 10.10.1.1" username

หากฉันออกinitctl reload-configurationงานได้รับการยอมรับ ฉันสามารถเริ่มได้โดยโทรinitctl start testและงานจะเริ่ม

อย่างไรก็ตามสิ่งนี้จะไม่ทำงานในการรีบูตด้วยตนเองเท่านั้น ฉันได้ลองปรับเปลี่ยนคำสั่งเริ่มต้นเป็นต่อไปนี้ทั้งหมดโดยไม่มีโชค

start on started

start on (local-filesystems and net-device-up IFACE!=lo)

start on net-device-up IFACE=eth0 

และประมาณหนึ่งโหลวิธีอื่น ๆ ที่ฉันสามารถเห็นได้กล่าวถึงในตัวอย่างที่แตกต่างกัน ดูเหมือนจะไม่มีสคริปต์เริ่มต้น (test.conf เช่นเดียวกับไฟล์อื่น ๆ ทั้งหมดในโฟลเดอร์นี้เป็นของ root และ 644)

ฉันขาดอะไรที่ชัดเจนแจ่มใส

คำตอบ:


32

ฉันพบสคริปต์พุ่งพรวดที่เป็นประโยชน์มากสำหรับผู้ที่มีปัญหาในอนาคต ใส่สิ่งนี้ลงใน / etc / init /

# /etc/init/debug.conf
start on ( starting JOB!=debug \
or started JOB!=debug \
or stopping JOB!=debug \
or stopped JOB!=debug )
script
exec 1>>/tmp/log.file
echo -n "$UPSTART_JOB/$UPSTART_INSTANCE ($0):$$:`date`:"
echo "Job $JOB/$INSTANCE $UPSTART_EVENTS. Environment was:"
env
echo
end script

สคริปต์นี้โดยทั่วไปบันทึกงานทั้งหมดที่เริ่มต้นหรือหยุด ฉันพบว่า CentOS 6 ไม่ 'ปล่อย' อะไรเกี่ยวกับ runlevels (หรือเหตุการณ์ทั่วไปอื่น ๆ ที่ฉันได้ลอง ') การค้นหาไฟล์บันทึกที่งานการดีบักสร้างใน /tmp/log.file มีประโยชน์มาก ด้วยการเปลี่ยนจุดเริ่มต้นของสคริปต์จาก:

start on runlevel [345]

ถึง

start on started sshd

งานของฉันทั้งหมดเริ่มต้นขึ้นอย่างถูกต้อง นี่เป็นความเจ็บปวดที่ด้านหลังเนื่องจากทุกตัวอย่างที่ฉันพบใช้ไวยากรณ์เดิม ..


ถ้าฉันสามารถลงคะแนนได้มากกว่าหนึ่งครั้งฉันจะได้
Peter Mounce

15

ขออภัยที่ necroposting แต่ฉันจัดการเพื่อแก้ปัญหานี้โดยใช้ต่อไปนี้:

start on stopped rc RUNLEVEL=[345]

"หยุด" ไม่ใช่การพิมพ์ผิด - ดูเหมือนว่า rc จะหยุดเมื่อเข้าสู่ runlevel


2
ขอบคุณสำหรับทิป! Necroposting ดีมากเมื่อเป็นประโยชน์!
Brian

5

นี่คือสิ่งที่ฉันทำ (CentOS 6, พุ่งพรวด 0.6.5) เพื่อแก้ไขปัญหาการเกิดใหม่ ในเทอร์มินัลอื่นให้ทำ

sudo initctl log-priority debug 
sudo tail -F /var/log/messages
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.