日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

AIX 添加开机启动项

發布時間:2024/1/17 ChatGpt 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AIX 添加开机启动项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在學習本主題之前,還是先學習一些AIX關于啟動的基礎知識,如果你只關心如何開機自動重啟程序,請跳過第一章、第二章。

----------------------------
第一章 AIX開機啟動過程介紹
----------------------------
不從最開始說起了,只說從AIX kernel被裝載到內存開始。
1、AIX系統存儲在BLV的kernel在內存中創建/(root),/usr/和/var文件系統。
要注意,這里所說的文件系統,包括kernel在啟動過程中都是存儲在RAM(內存)中的。
他們沒有權限訪問BLV之外的任何內容。
2、文件系統被裝載到RAM之后,kernel開始執行init進程,這個時候init進程開始接管系統啟動進程。
3、AIX kernel把init進程的PID設為1,這個進程是作為parent,root進程存在的,是AIX系統中運行的其他所有進程的父進程.當init進程被裝載并在啟動過程運行,init調用rc.boot.
4、rc.boot文件在AIX系統啟動過程中有三個重要的作用。
(1)、第一部分是rc.boot初始化了系統的硬件,使其為系統的啟動做好準備。通過系統設置命令cfgmgr,一小部分系統啟動需要的驅動被配置。
(2)、第二部分是文件系統/,/usr,/var和頁面空間被裝載。在這些文件系統被裝載以后,init被硬盤上的PID為1的init進程所替代,同時RAM被清空。
(3)、第三部分和最后部分,rc.boot,實際的init進程是從硬盤上運行的。
當init被執行后,/etc/inittab文件被堵去,同時里面的每一條都被執行。
在這個過程中,/tmp文件系統正被裝載到硬盤上。
現在,系統正在啟動的最后過程中,cfgmgr命令再一次運行把剩下的在第一部分沒有被rc.boot運行的驅動運行起來。
5、init進程被執行以后,下一步就是init會打開/etc/inittab,并且執行里面的內容。

----------------------------------------------
第二章 AIX啟動的相關命令知識
----------------------------------------------
1、確認當前系統的運行級別
????? 在系統維護或者切換系統運行級別之前,你也許需要檢查當前系統的運行級別。
???????????cat /etc/.init.state
??????????? lsitab init

2、顯示系統運行級別的更改紀錄
????? 提示:確保bosext2.acct.obj 代碼安裝在你的系統上。
??????????? (1) 以root身份登陸系統.
??????????? (2)執行/usr/lib/acct/fwtmp </var/adm/wtmp |grep run-level
??????????????? 得到類似的結果:
??????????????????? run-level 2 0 1 0062 0123 697081013 Sun Feb 2 19:36:53 CST 1992
??????????????????? run-level 2 0 1 0062 0123 697092441 Sun Feb 2 22:47:21 CST 1992
?????????????????? run-level 4 0 1 0062 0123 698180044 Sat Feb 15 12:54:04 CST 1992

3、改變系統運行級別基礎知識
當系統第一次啟動之后,系統按照/etc/inittab文件的內容,進入默認的系統運行級別,直到系統管理員發出改變系統級別的命令。
下面是系統定義的系統運行級別:
0-9 當init命令改變系統運行級別為0-9時,將會殺掉當前系統級別下正在運行的所有進程,并進入新的系統運行級別。
0-1 為未來的操作系統保留
2 默認運行級別
3-9 可以根據用戶的需求進行自定義
a,b,c 當init命令接收到運行a,b或者c的時候,init命令不殺死任何當前運行的進程,只是啟動新運行級別內定義的新進程。
Q,q init命令將會重新檢查/etc/inittab文件
S、s 維護模式
M、m 維護模式

4、改變系統運行級別
(1)、檢查/etc/inittab文件,確認你想改變的系統運行級別。
(2)、使用wall命令通知所有用戶你將改變
(3)、使用smit telinit快速改變系統運行級別
(4)、使用init n或者telinit n命令改變系統運行級別,其中n為系統運行級別。

5、改變/etc/inittab文件
在有些情況下,你需要增加、改變、列出、刪除/etc/inittab文件中的記錄。/etc/inittab文件定義了哪些進程在哪個系統運行級別里運行。
當你運行init命令的時候,它將讀取/etc/inittab文件。每一條記錄定義了一個進程在一個進程的運行。
(1)、/etc/inittab文件參數
Identifier 定義了唯一的標識(1到14個字符)。
Run Level 定義了進程所在的運行級別(1到20個字符)。

Action 定義了init命令將為此條進程執行的操作,包括:respawn,wait,once,boot,bootwait,powerfail,powerwait,off,hold,ondemand,initdefault和sysinit.
respawn 如果進程不存在,Start這個進程,不等待它的結束,繼續掃描inittab文件。如果這個進程結束了,restart它。
wait Start這個進程,并且等待它的結束。
once Start這個進程,并且不等待它的結束。如果這個進程結束,不restart它。
boot 僅在系統重啟時執行。
bootwait 當服務第一次從單用戶變為多用戶時執行
powerfail 僅當如果init收到一條power錯誤時執行命令
powerwait 僅當如果init收到一條power錯誤時執行命令,同時一直等待進程的結束,然后才繼續掃描inittab文件。
off 如果進程正在運行,發出SIGTERM信號,然后在20秒內執行SIGKILL
ondemand 這個參數等同于respawn,但是只在a,b,c級別運行。
initdefault 只有當init初始化執行,才掃描內容。
sysinit 在登陸前,在init得到權限控制之前執行內容。
Command 包含需要執行的shell命令。
(2)、下面的命令可以支持對/etc/inittab文件進行操作。
chitab 改變/etc/inittab文件的記錄。
lsitab 列出/etc/inittab文件的記錄。
mkitab 往/etc/inittab文件里增加記錄。
rmitab 從/etc/inittab文件里刪除記錄。
(3)、命令舉例
增加紀錄
往/etc/inittab文件里增加一條記錄,執行
mkitab Identifier:Run Level:Action:Command
例如:tty002:2:respawn:/usr/sbin/getty /dev/tty2
改變記錄
改變/etc/inittab文件里的一條記錄,執行
chitab Identifier:Run Level:Action:Command
例如:將上例的運行級別從2改為2和3,chitab tty002:23:respawn:/usr/sbin/getty /dev/tty2
列出記錄
列出/etc/inittab文件中的所有記錄
lsitab -a
列出某個指定的記錄
lsitab Identifier
例如:lsitab tty2
刪除記錄
rmitab Identifier
例如:rmitab tty2

6、執行運行級別腳本
運行級別腳本允許用戶在更改運行級別時啟動和停止所選擇的應用程序。以 K 開頭的腳本是停止腳本,以 S 開頭的腳本是啟動腳本。
這些腳本保存于它們所從屬的運行級別的特定子目錄中,每個子目錄的格式為 rcn.d,其中 n 表示運行級別:
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
/etc/rc.d/rc6.d
/etc/rc.d/rc7.d
/etc/rc.d/rc8.d
/etc/rc.d/rc9.d

---------------------------------------
第三章 開機自動運行程序
---------------------------------------
?????? 開機啟動程序的方法有很多,我只談談思路,然后給出一些解決方法。
?????? 從第一章AIX系統啟動過程,我們知道AIX系統在啟動過程中,會掃描inittab文件的內容,并執行它。
????????????? 1、那么,我們可以通過直接修改inittab文件,使系統在開機重啟時運行我們的命令。
????????????? 2、也可以通過inittab文件里指向的腳本(rc.local、rc.d組,后面會詳細介紹)。
??????????????????? 間接使系統在開機重啟時運行我們的命令。
????????????? 3、其他方法:如使用crontab的定時任務功能,間接啟動腳本,
?????????????????? 這種方法不是開機后馬上運行,要看crontab里設置的時間間隔的長短而定。
??????
一、通過rc.local啟動(最簡單的方法
????? rc.local是inittab里的一個腳本指向,通過運行lsitab -a|grep rc.local ,我們可以得到rc.local:2:once:/etc/rc.local > /dev/console 2>&1

????? 1、 mkitab -i rcnfs "rc.local:2:once:/etc/rc.local > /dev/console 2>&1"?? #如果inittab文件里沒有關于rc.local的信息,可以通過此命令創建腳本。
??????????? 注意系統運行級別要與你想要運行的系統運行級別一致,這里系統運行級別是2。
????? 2、touch /etc/rc.local #新建rc.local文件
????? 3、chmod 700 /etc/rc.local #設置執行權限
????? 4、把執行腳本放到/etc/rc.local里之后,AIX系統在重新啟動時,就會運行/etc/rc.local里的腳本了。

?

1. 自動啟動定制的軟件
在系統引導時, init進程順序檢測/etc/inittab文件, 決定在引導過程中進行什么樣的操作.如果應用, 進程或其它的用戶操作需要在系統引導過程中進行, 則要在/etc/inittab文件中加入相應的條目.通常的做法是創建一個名為rc.local的腳本文件, 將所有要在系統引導過程中啟動的用戶應用寫入該腳本文件中. 該腳本文件可以在/etc/inittab文件中被調用, 通常是在所有系統應用和服務啟動后, 在用戶登錄被允許之前被調用. 位置通常是在主控登錄的條目前.
下面是一個例子:
??rc.local:2:wait:/etc/rc.local > /dev/console 2>&1
在上面的條目中, init將在執行余下的條目之前等待該腳本程序的完成.如果進程, 應用或命令需要通過特定的用戶運行, 則可在運行的命令中加入su命令.
如: su myuser "-c /usr/bin/myapp"
建議在腳本程序中加入應用開始啟動和完成啟動的輸出提示.
如:
??#!/bin/ksh??
??echo "Starting User Applications...."??
??echo "Starting Application XYZ"??
??su myuser "-c /usr/bin/myapp"??
??echo "Startup of User Applications completed"??
2. 自動停止定制的軟件
shutdown命令用于關閉AIX系統. 在此操作中會關閉所有AIX子系統及文件系統.如果名為/etc/rc.shutdown的腳本程序存在, 系統會首先執行該腳本程序中的命令. 在該腳本程序中可以加入關閉用戶應用的命令. 建議在腳本程序中加入應用停止運行和完成停止運行的輸出提示.
如:
??#!/bin/ksh??
??echo "Stopping User Applications...."??
??echo "Stopping Application XYZ"??
??[ commands to stop application ]??
??echo "Shutdown of User Applications completed"


二、通過/etc/rc.d腳本啟動(需要編寫start\stop腳本
????? /etc/rc.d是inittab里的一組腳本指向,通過運行lsitab -a|grep rc.d,我們得到
?????????? l2:2:wait:/etc/rc.d/rc 2
?????????? l3:3:wait:/etc/rc.d/rc 3
?????????? l4:4:wait:/etc/rc.d/rc 4
?????????? l5:5:wait:/etc/rc.d/rc 5
?????????? l6:6:wait:/etc/rc.d/rc 6
?????????? l7:7:wait:/etc/rc.d/rc 7
?????????? l8:8:wait:/etc/rc.d/rc 8
?????????? l9:9:wait:/etc/rc.d/rc 9
????? 1、cd /etc/rc.d/?????? #進入/etc/rc.d目錄
????? 2、cd /samples?????? #進入/etc/rc.d/samples 目錄,可以得到K70lpd、README.txt、S70lpd三個文件。
?????????? 這里只是簡單的模仿K70lpd和S70lpd,更高級的方法,留給大家自己研究了。
?????????? 下面,我們分別創建自己的啟動和結束腳本。
???????????????? 例如:
# more K69oa
#!/bin/ksh
##################################################
# name: K69oa
# purpose: sample script that start or stop oa.
#轉載請注明From:http://hi.baidu.com/空氣人兒
##################################################

case "$1" in
start )
??????? WebSphere/AppServer/bin/startServer.sh server1
??????? IBMHttpServer/bin/apachectl start
??????? ;;
stop )
??????? WebSphere/AppServer/bin/stopServer.sh server1
??????? IBMHttpServer/bin/apachectl stop
??????? ;;
* )
??????? echo "Usage: $0 (start | stop)"
??????? exit 1
esac


# more S69oa
#!/bin/ksh
##################################################
# name: S69oa
# purpose: sample script that start or stop oa.
#轉載請注明From:http://hi.baidu.com/空氣人兒
##################################################

case "$1" in
start )
??????? WebSphere/AppServer/bin/startServer.sh server1
??????? IBMHttpServer/bin/apachectl start
??????? ;;
stop )
??????? WebSphere/AppServer/bin/stopServer.sh server1
??????? IBMHttpServer/bin/apachectl stop
??????? ;;
* )
??????? echo "Usage: $0 (start | stop)"
??????? exit 1
esac
?????
?????? 3、chmod 700 這兩個腳本
?????? 4、把這兩個腳本放到/etc/rc.d/rc2 下。
?????? 5、使用shutdown -rF重新啟動機器時,會自動運行放在/etc/rc.d/rc2下的S69oa腳本中的stop部分;
??????????? 系統重啟之后,系統會自動運行放在/etc/rc.d/rc2下的S69oa腳本中的start部分。

三、自定義啟動腳本(與方法一基本相同,自己研究吧)



參考:
http://publib16.boulder.ibm.com/pseries/en_US/infocenter/base/43_docs/aixbman/baseadmn/toc.htm
http://www.ibm.com/developerworks/aix/library/au-speakingunix_unixboot/index.html
轉載自:http://hi.baidu.com/空氣人兒

轉載于:https://www.cnblogs.com/zmlctt/p/3770814.html

總結

以上是生活随笔為你收集整理的AIX 添加开机启动项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。