作者 主題: [問題] 請問兩個 daemon 的啟動相依問題  (閱讀 3161 次)

0 會員 與 1 訪客 正在閱讀本文。

andrew

  • 實習板主
  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
我遇到一個情況, 系統每次開機時:

1.我會去執行 dhcp client
2.設定好網路組態
3.執行 ntpclient的程式去做網路對時

但是因為這三個程序是寫在 rc 的啟動script 中,
又因為是dhcp的關係, 所以你不能保證執行(3)的時候,
(1),(2) 的dhcp 已經取得資訊並且設定完成.

常常遇到的問題是當 dhcp client 尚未將網路組態設定好時,
如果就去執行 ntp client程式, ntp client 就會發出
"Unknown Host" 的錯誤訊息, 然後結束,
可以理解, 因為 Gateway, DNS 都還沒設定之前,
根本無法連到 ntp server.

所以問題變成是 - 怎麼確保 ntp client在網路組態生效之後才執行,

我試過修改原始程式讓 dhcp client 再要到網路設定之後,
利用 system("ntpclient"); 這個方式去啟動,
但是有些邊際效應產生, 結果不是很好,

另外, 有個方向是利用我們的函數,
因為 dhcp 取得網路組態之後會將設定寫入 FLASH 中,
我們也有funciotn可以存取, 例如: get_flash("gateway");

所以我有想過在 dhcp client 的程式中寫個 while(1) {...}
裡面隔一段時間就 get_flash("gateway"), ...等等的數值,
如果不是 "0.0.0.0" 就去啟動 ntp client,
不過感覺這樣做效率會不好, 所以想請問大家有沒有好的解決辦法???
find /my_brain type sleepy -exec rm -rf {} \;

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17465
    • 檢視個人資料
    • http://www.study-area.org
[問題] 請問兩個 daemon 的啟動相依問題
« 回覆 #1 於: 2006-05-30 22:32 »
恩?
你說的 rc 命令是 /etc/rcX.d 目錄下的嗎?
如果是, 那麼應該沒有你的問題才對啊.

如果不是, 只要你不是用 bg 方式, 其實也不會出現你的問題.
comd1
comd2
comd3
是一個跑完才跑下一個的.
要不就改為 cmd1 && cmd2 && cmd 3