2013-04-24 44 views
2

我在Fedora 18上有一個SysV初始化腳本。Fedora 18使用systemd(顯然,沒有辦法切換回SysV)。我在Fedora 18上有一個SysV初始化腳本。如何在網絡準備好後啓動它?

我的腳本需要網絡準備就緒。目前,在腳本運行時,網絡還沒有準備好。如何確保在網絡啓動後運行我的SysV init腳本?

我的腳本的開頭是這樣的:

#!/bin/bash 
    # 
    # chkconfig: 345 99 01 
    # description: starts the xyz boot service 

回答

1

OK,想幾件事情之後,我嘗試添加一個LSB​​頭:

### BEGIN INIT INFO 
# Required-Start: $network $local_fs $named 
# Default-Start: 3 4 5 
# Default-Stop: 0 1 2 6 
# Short-Description: Starts/stops the foo service 
# Description: Starts/stops the foo service 
### END INIT INFO 

這個工作!腳本現在在網絡初始化後運行。我猜systemd實現讀取LSB標頭。

+1

根據[運行服務後,網絡已經啓動](http://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/) d文檔,LSB標頭中的$ network將被轉換爲網絡聯機目標,用於您單元的After和Wants指令。 – Dereckson 2014-11-05 23:02:41

0

要運行腳本時,網絡已準備就緒,在您的systemd服務文件的[組]部分,添加以下內容:

After=network-online.target 
Wants=network-online.target 

的網絡被定義爲準備當網絡管理軟件考慮網絡已啓動(通常意味着IP地址已配置且可路由)。 NetworkManager的,它會查詢DBUS來獲取信息..

參考

相關問題