[英]startup script in freebsd is not running
我一直試圖在freebsd的啟動時運行shell腳本。 我已經閱讀了stackoverflow中的所有類似問題並嘗試過。 但是沒有任何效果。 這是我嘗試的示例代碼是dummy
。
#!/bin/sh
. /etc/rc.subr
name="dummy"
start_cmd="${name}_start"
stop_cmd=":"
dummy_start()
{
echo "Nothing started."
}
load_rc_config $name
run_rc_command "$1"
保存為dummy
名稱。 權限為-r-xr-xr-x
。 在rc.conf文件中設置為dummy_enable="YES"
。
問題是,當我重新啟動系統進行測試時, dummy
文件不存在。 因此腳本未執行。 還有什么需要做的運行我的虛擬腳本。
SRC: http://www.freebsd.org/doc/en/articles/rc-scripting/article.html#rc-flags
: http://www.freebsd.org/doc/en/articles/rc-scripting/article.html#rc-flags
您需要在腳本中添加rcvar="dummy_enable"
。 至少對於FreeBSD 9.1。
使用參數rcvar
調用腳本以獲取啟用狀態:
# /etc/rc.d/dummy rcvar
# dummy
#
dummy_enable="YES"
# (default: "")
最后使用參數start
啟動它-除非在/etc/rc.conf
(或/etc/rc.conf.local
或/etc/defaults/rc.conf
)中設置了dummy_enable
否則dummy_enable
不會啟動服務/腳本。
# /etc/rc.d/dummy start
Nothing started.
一種可能的解釋是rcorder(8)表示:
在每個文件中,必須出現一個包含一系列“ REQUIRE”,“ PROVIDE”,“ BEFORE”和“ KEYWORD”行的塊。
盡管我記得在其他地方,如果文件沒有“ REQUIRE”,“ PROVIDE”或“ BEFORE”,則該文件將被隨意放置在依賴關系順序中。 並且,可能的任意位置在第一次運行到$ early_late_divider之間和第二次運行在$ early_late_divider之后是不同的。
OTOH,這是免費的FreeBSD還是其他版本? 我記得曾經讀過FreeNAS將其配置保存在其他地方,並在每次引導時重新創建其系統文件。 而且,很有可能/ etc實際上在虛擬磁盤上。
另外,直到安裝了第一個安裝rc文件的端口時, /usr/local/etc/rc.d
才存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.