หนึ่งไปเกี่ยวกับการล่าช้าสคริปต์บริการ init ใน Linux จนกว่าซ็อกเก็ต MySQL อยู่? คำสั่ง sleep ในสคริปต์เริ่มต้นทำให้กระบวนการบูตทั้งหมดล่าช้าหรือเป็นสคริปต์เริ่มต้นที่ดำเนินการโดยเธรดอื่นเพื่อป้องกันการบล็อกหรือไม่
ฉันพยายามรับบริการ PolicyD ของฉันเพื่อเริ่มต้นหลังจาก MySQL ขณะนี้มันทำใน /etc/rc5.d เนื่องจากสคริปต์ของ PolicyD เริ่มต้นด้วย S06 ในขณะที่ MySQL เริ่มต้นด้วย S04 ปัญหาคือว่าเมื่อสคริปต์ init ของ policyd ทำงานหาก /var/run/mysqld/mysqld.sock ไม่มีอยู่แสดงว่าไม่ทำงาน ถ้าฉันหน่วงเวลาสคริปต์เป็นเวลา 60 วินาทีมันใช้งานได้ดี (ให้ MySQL มีเวลาเพียงพอในการเริ่มต้นระบบและซ็อกเก็ตของมัน) แต่ฉันไม่ต้องการหยุดกระบวนการบูตทั้งหมดชั่วคราวในระยะเวลานานใช่ไหม
ฉันไม่คิดว่า MySQL มีชื่อสิ่งอำนวยความสะดวกเสมือนชื่อ LSB เพื่อชะลอการเริ่มต้นของ policyd หรือไม่ ( https://wiki.debian.org/LSBInitScripts )
วิธีที่ดีที่สุดในการจัดการกับสิ่งนี้คืออะไร? ระบบ init นั้นมีหลายเธรดตั้งแต่สคริปต์เริ่มต้นทำงาน daemons และโปรแกรมอื่นที่สามารถวนซ้ำได้? ฉันสับสนเล็กน้อย ...
หากเป็นเรื่องสำคัญฉันกำลังใช้งาน Ubuntu 16.04 หากใครบางคนสามารถช่วยอธิบายให้ชัดเจนว่ากระบวนการเริ่มต้นทำงานอย่างไรและจะแก้ไขปัญหานี้อย่างไรฉันขอขอบคุณจริงๆ