AIX如何自動啟動和關閉軟體的執行

2021-09-01 23:36:25 字數 3513 閱讀 6122

1. 自動啟動定製的軟體

在系統引導時, init程序順序檢測/etc/inittab檔案, 決定在引導過程中進行什麼樣的操作.如果應用, 程序或其它的使用者操作需要在系統引導過程中進行, 則要在/etc/inittab檔案中加入相應的條目.通常的做法是建立乙個名為rc.local的指令碼檔案, 將所有要在系統引導過程中啟動的使用者應用寫入該指令碼檔案中. 該指令碼檔案可以在/etc/inittab檔案中被呼叫, 通常是在所有系統應用和服務啟動後, 在使用者登入被允許之前被呼叫. 位置通常是在主控登入的條目前.

系統重新啟動可能發生在白天,也可能發生在夜晚(可能由於站點停電),若此時能夠讓系統上執行的服務(應用程式)自動啟動,則會非常有利。有時候就是這樣!讓服務啟動可以免除您登入並親自啟動它們的額外任務,這很好。但在某些情況下,我們不希望服務啟動。此時,我想到的是乙個集群服務環境,可能有不同的服務遍布在幾個 ibm® aix® 主機上,這些服務需要以正確的順序啟動,以便能夠正常地工作和整合。在這裡,您可能需要手動按順序啟動它們。

為了讓服務自動啟動,aix 提供了(類似於其他 unix/linux 作業系統)inittab 檔案來實現這一點。您可以從 /etc/inittab 執行以下操作:

為了在系統關閉時自動關閉某個服務,aix 提供了:

在本文中,我不會介紹 rc.runlevel 目錄配置,而是打算介紹前面提到的其他程序。

為了將乙個條目放進 inittab,您需要使用以下格式:

identifier : runlevel: action: command

其中:每個條目欄位用冒號 「:」 分隔。

在將條目新增到 inittab 中時,需要確保:

如果從 /etc/rc.shutdown 呼叫的指令碼或命令中有錯別字,則存在 「語法或沒有發現命令」 問題,請注意,如果使用shutdown命令進行呼叫,則會中止關閉操作。因此,請在從 rc.shutdown 呼叫指令碼之前確保它可以正常工作。

需要了解的一些基本資訊機器已經執行的時間資訊#uptime

01:25pmup236days,3:54,當前的執行級別:

#cat/etc/.init.state

2上一次 aix 重啟的時間:

#who-b

systembootfeb1719:13調整 aix 的執行級別:

#/usr/lib/acct/fwtmp在將條目新增到 inittab 中時,一定要記住,以乙個冒號 「:」 開頭的行是乙個注釋,因此,init 在讀取 inittab 時將會忽略該行的其餘部分。不要使用 「#」(井號)符號新增注釋。但是,您可以在行的末尾對注釋使用井號。

讓我們來看看執行指令碼的 inittab 的乙個條目。假設我們要執行乙個將電子郵件傳送給系統管理員的指令碼,向系統管理員說明裝置在系統啟動時是可用的。

inittab 的條目如下所示:

mailout:2:once:/usr/local/bin/mailout > / dev/null 2>&1 #mail users

上面的條目可以概括如下:

就完整性而言,以下是有問題的指令碼:

!/bin/sh

# mailout

/usr/sbin/sendmail -t 《在上述示例中,操作部分的屬性 once 表示只執行一次,但也有其他可以使用的操作。另外兩個常見的操作是:重生(respawn)和等待(wait)。對於重生操作,將會執行相應的命令,但 init 不會等待該命令的完成。如果命令停止,inittab 會重新啟動它,讓此程序繼續。所以,您應該查詢乙個被重生的命令,該命令幾乎在所有時間都在執行。ps-ef 命令輸出的 stime 字段顯示了該命令最後一次重生的時間。被重生的典型程序是 tty、cron 和資料庫監控應用程式,以及基於網路檔案系統(nfs)的實用工具。另乙個常用操作是等待。init 執行命令,並等待命令完成,然後再讀取 inittab 檔案。使用等待操作的典型程序是網路身份驗證應用程式和列印、備份服務,等等。

如果需要啟動的程序不是 root 所擁有的,那麼只需將 su 命令作為 inittab 中的命令條目的一部分提供即可。下面的示例執行了 /home/ampter/start.sh,但首先會呼叫 su 命令,因此,程序是由使用者 ampter 啟動的。請注意,這裡使用了包圍了部分命令的引號:

amps:2:once:su - ampter "-c /home/ampter/start.sh" > /dev/console 2>&1

在編輯 inittab 檔案時,確保在儲存檔案後檢查了您的條目。然後,檢查您所做的更改。相信我,沒有人願意搞砸 inittab。如果某人感覺對手動編輯檔案沒有信心,那麼還有挽救的方法。aix 提供以下實用工具:

如果您需要停止程序重生(換句話說,可能需要停止它來執行一些維護工作),首先,編輯 inittab 檔案並在條目的開始處輸入一條注釋,這樣 init 就不會讀取它。下面的示例顯示,通過在條目的開始處放置乙個冒號,可以讓 inittab 忽略該條目。

:fmc:2:respawn:/opt/db2_09_05/bin/db2fmcd #db2 fault monitor coordinator

接下來,讓 init 重新讀取 inittab 檔案:

teinit q

現在,停止該應用程式。執行所需的任何維護。要從 inittab 重新啟動程序,只需刪除條目開始處的冒號即可。然後,在命令提示符下,執行下面的命令,讓 init 重新讀取 inittab 檔案:

teinit q

現在,它將被重新啟動。

啟動應用程式或在啟動時執行命令的另一種常見方法是使用 /etc/rc.local 檔案。在這裡它是乙個可執行指令碼,從 inittab 檔案中被呼叫。rc.local 檔案可以包含乙個或多個需要在啟動時執行的定製命令。在我看來,此檔案應該僅用於一次性或臨時的命令執行,而不是服務啟動指令碼。

允許從 inittab 呼叫 rc.local 的乙個典型條目是:

rcloc:2:wait:/etc/rc.local > /dev/console 2>&1

在上例中,操作部分是等待。也就是說,init 要等到所有的命令都被執行,然後再繼續讀取 inittab 檔案。我使用 rc.local 檔案執行臨時或定製命令(如禁用分頁空間或斷開網路介面),因此沒有提供服務的完整啟動指令碼。這些命令將會在我的 inittab 檔案中。

當您發出乙個shutdown命令時,會呼叫 /etc/rc.shutdown 檔案,這是乙個可執行的指令碼。在該檔案中,將會放入用於關閉您的定**務的命令或呼叫指令碼。當我必須關閉 aix 系統來首次呼叫 /etc/rc.shutdown 檔案本身時,我覺得這是乙個很好的實踐:

/etc/rc.shutdown

然後,我知道所有的應用程式都已正確關閉,在發出實際的shutdown命令之前,該命令無疑會重新執行 rc.shutdown 檔案。但是,我不介意這一點。

AIX如何自動啟動和關閉軟體的執行

本文件討論了如何定製系統,以使使用者定義的應用在系統引導過程中自動啟動,並在系統關閉時自動停止.1.自動啟動定製的軟體 在系統引導時,init程序順序檢測 etc inittab檔案,決定在引導過程中進行什麼樣的操作.如果應用,程序或其它的使用者操作需要在系統引導過程中進行,則要在 etc init...

如何實現軟體的自動啟動和取消自動啟動

自動啟動 得到當前檔案的路徑 char szfilepath max path dword dwret dwret getmodulefilename null,szfilepath,max path if dwret 0 將當前路徑增加到該登錄檔中 lret regsetvalueex hkey,...

AIX上如何啟動和停止系統服務

在 aix 上,服務也可以稱為子系統 subsystem 它是受控於系統資源控制器 system resource controller,src 的。src 提供了一套命令來控制整個 aix 系統的子系統,所以,啟動和停止相關的服務 子系統 也是要通過這些命令來實現的。1.啟動子系統 startsr...