我有幾個服務器和其他守護進程需要以正確的順序啓動。如何在Ubuntu下對init.d腳本進行排序
我從骨架腳本創建的init.d腳本,並可以將它們安裝使用編號命名系統以正確的順序啓動,但一些問題依然存在:
一臺服務器(「serverA的」)需要初始化數據庫連接,然後在套接字上偵聽。 然後,另一個服務器('serverB')需要連接到該套接字,並且如果先前的過程尚未偵聽,則連接將失敗。有沒有辦法阻止serverA的init.d腳本終止直到serverA開始監聽?在serverA init終止之前,serverB init不會啓動。
現在,安裝程序的工作原理是讓serverB重新嘗試連接,直到成功爲止,但該方法似乎很脆弱。我希望更強烈地瞭解如何強制排序。
我相信套接字'文件'總是存在,所以它的存在不是一個好的指標。延遲守護進程方法很有前途。我現在使用shell'&'方法(快速簡單),但是在內部進行守護進程非常實用。 – Rdbhost 2009-12-05 19:20:15
您可以在啓動服務器之前刪除套接字,因此它將不得不重新創建它。 (我也忘了,循環可能也需要短暫的睡眠。) – 2009-12-05 19:56:20
您可能需要在該輪詢循環中進行睡眠。 – mc0e 2015-02-17 13:09:08