亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

用紅帽子的chkconfig管理Init腳本 (2)
2006-06-08   ChinaUnix

  有的時候, 刪掉一個服務也很恰當。例如,針對 sendmail,在客戶機上導入本地賬號的郵件沒有必要。運行 sendmail 作為守護進程就不是必要的了。這種情況,我發現禁止 sendmail 服務很有必要,減少了潛在的安全問題,從 chkconfig 中刪掉 sendmail,輸入:

chkconfig --del sendmail

在下面,我們的 find 命令顯示該處沒有符號連接了,不過 sendmail 的 init 腳本仍然有:

[root]# find /etc/rc.d -name '*sendmail' -print

/etc/rc.d/init.d/sendmail

在我看來這很完美。腳本保留了,萬一 sendmail 需要作為一個服務實現呢?不過所有的符號連接去掉了。我們能在每一個運行級禁止 sendmail 服務,這將在每一個 rc*.d 子目錄中放置一個 kill 腳本,雖然 sendmail 從不在初始化階段啟動,是個不必要的任務 ,可是,我曾看到一些系統管理員需要在特定的場合手工啟動服務。把 kill 腳本留在那里確保可以干凈的殺掉服務。

到目前為止,一切順利。我們已經知道使用 chkconfig 如何查看、調整、刪掉服務。現在添加一個新的服務。看下面的腳本 oracle:

Listing 1. Oracle Script

#!/bin/sh

#chkconfig: 2345 80 05

#description: Oracle 8 Server

ORA_HOME=/usr/home/oracle/product/8.0.5

ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]

then

echo "Oracle startup: cannot start"

exit

fi

case "$1" in

"start")

su - $ORA_OWNER -c $ORA_HOME/bin/dbstart

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"

;;

"stop")

su - $ORA_OWNER -c $ORA_HOME/bin/dbshut

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"

;;

esac

-----------------------------------------------------

使用這個腳本,Oracle 8 可以以參數 "start" 啟動,以 "stop" 參數停止。它符合 init 腳本的最小要求可以和 /etc/rc.d/rc 腳本聯合使用。

把腳本放到 /etc/rc.d/init.d 中并運行(以 root) :

chmod +x /etc/rc.d/init.d/oracle

使你的腳本可執行。如果你擔心普通用戶察看這個腳本,你可以設定更嚴格的文件權限 。只要這個腳本可以被 root 作為單獨的腳本運行就可以。

注意腳本中的兩行注釋:

#chkconfig: 2345 80 05

#description: Oracle 8 Server

chkconfig 需要這些行來決定如何實現初始運行級添加服務,如何設定啟動和停止順序的優先級。這些行指明腳本將為運行級 2、3、4、5 啟動 Oracle 8 服務。另外, 啟動優先權將被設定為 80 而停止優先權設定為 05。

現在腳本在合適的位置,并且有合適的執行權限,以及恰當的 chkconfig 注釋, 我們可以添加 init 腳本,以 root 用戶執行,

# chkconfig --add oracle.

用 chkconfig 的查詢,我們能核實我們所作的添加:

[root]# chkconfig --list | grep oracle

oracle 0:off 1:off 2:on 3:on 4:on 5:on 6:off

而且,我們可以用標準的 find 命令察看 chkconfig 如何設定符號連接:

[root]# find /etc/rc.d -name '*oracle' -print

/etc/rc.d/init.d/oracle

/etc/rc.d/rc0.d/K05oracle

/etc/rc.d/rc1.d/K05oracle

/etc/rc.d/rc2.d/S80oracle

/etc/rc.d/rc3.d/S80oracle

/etc/rc.d/rc4.d/S80oracle

/etc/rc.d/rc5.d/S80oracle

/etc/rc.d/rc6.d/K05oracle

正如需要的那樣,kill 連接的名字包含優先權 05 而 start 連接包含 80。如果你需要調整優先權,(如:我們停止的優先權需要設為 03),簡單的調整 oracle init 腳本的chkconfig 注釋行并運行 reset命令 command,如下所示。符號連接會被改名:

[root]# chkconfig oracle reset

[root]# find /etc/rc.d -name '*oracle' -print

/etc/rc.d/init.d/oracle

/etc/rc.d/rc0.d/K03oracle

/etc/rc.d/rc1.d/K03oracle

/etc/rc.d/rc2.d/S80oracle

/etc/rc.d/rc3.d/S80oracle

/etc/rc.d/rc4.d/S80oracle

/etc/rc.d/rc5.d/S80oracle

/etc/rc.d/rc6.d/K03oracle

大家可能都知道了,inetd在 Red Hat 7中已經被xinetd 所取代(參考本站 "使用xinetd" 一文)。而且,chkconfig 的功能已經被擴展,可以管理一些 xinetd 的 Internet 服務。例子如下:

[root]# chkconfig --list

...

xinetd based services:

finger: on

linuxconf-web: off

rexec: off

rlogin: off

rsh: off

ntalk: off

talk: off

telnet: on

tftp: off

wu-ftpd: on

禁掉一個 xinetd 服務,可能是 finger,你應該輸入:

[root]# chkconfig finger off.

很簡捷啊,呵呵。可是,這里有個問題。當配置已經改變,命令 /etc/init.d/xinetd reload 指明 xinetd 自動重載入新的配置,被 chkconfig 執行。這個腳本運行一個帶有 SIGUSR2 信號的 kill 指示 xinetd 進行一個"硬"重配置。

那意味著什么?哦,當我測試的時候,通過 xinetd 提供的活動服務(如 Telnet, FTP 等)立刻被中止。如果你能計劃在最合適的時間啟動/禁止你的系統上的服務,可能不是個問題。作為一種替代方式,你可以調整你的 /etc/init.d/xinetd 腳本 ,這樣 reload 選項發送一個 SIGUSR1 信號。 這是個"軟"重配置。這將重啟動你的服務而不中斷你現存的連接 。

chkconfig 管理下,添加xinetd服務只要簡單的添加xinetd服務文件到 /etc/xinetd.d目錄中。chkconfig會自動的"撿起"它并使其可用,通過chkconfig 工具進行管理。簡潔阿!

現在你已經應該認識到紅帽子的 chkconfig 工具管理 init 腳本的好處了,雖然它的功能似乎簡單了些,但是它節省時間,這使其成為一個系統管理員適用的命令,值得記牢。

熱詞搜索:

上一篇:用紅帽子的chkconfig管理Init腳本 (1)
下一篇:賽迪顧問 05年中國刀片服務器市場統計

分享到: 收藏