簡體   English   中英

freebsd中的啟動腳本未運行

[英]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-flagshttp://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM