linuxshell腳本進程
㈠ linux寫一個shell腳本,要實現在鍵盤輸入一個進程號,輸出這個進程號的子進程pid,怎麼寫
這個只能找出子進程:
read-p"碼如請輸入一個進程號:"value
wym=`ps-ef|sed-e's/[ ][ ]*/|/g'|cut-d"|"-f"2-4"|grep"|${value}|"|cut遲碼啟-d"|"-f"1"`
echo"它的子進程:"
echo"$wym"
這個可以找出所有的後代進程:通過遞歸調用本身函數。
read-p"輸入模渣一個進程號:"p
functionmj(){
pid=`ps-ef|sed's/*/|/g'|cut-d"|"-f2-3|grep"|$1$"`
forppidin$pid;do
num=`echo"$ppid"|sed"s/|$1//g"`
echo"$num"
mj$num
done
}
mj$p
㈡ linux下如何寫個SHELL腳本,每天執行這么幾句命令:
1、登錄CentOS7系統,打開終端,輸入命令env shell列印出shell進程的環境變數。
㈢ Linux Shell自動拉起進程
新建文件夾/root/test/,test文件夾中有myCPP.cpp,myTEXT.txt,restart.sh
該文件的功能是每隔5s往myTEXT.txt中寫入當前時間
編譯得到可執行文件mycpp: g++ myCPP.cpp -std=c++11 -o mycpp
注意有時候因為許可權問題會導致shell拉起失敗,這里粗暴地開放所有許可權 chmod 777 mycpp
shell腳本,檢測目標程序是否處於運行狀態,如果不運行則將其拉起。
加上crontab就可以讓腳本定時執行,一旦發現進程沒有運行,則啟動該進程,這樣就實現了進程漏源缺的自動拉起。
通過 crontab -e 進入類似vim的操作界面,在文件末尾補充 */1 * * * * /root/test/裂鎮restart.sh /root/test/mycpp& ,讓restart.sh腳本每一分鍾運行一次(即每分鍾檢測一次mycpp是否正在執行)
查看mycpp進程是否在執行 ps -ef | grep mycpp
查看mycpp執行寫入的結返辯果 tail -f myTEXT.txt
㈣ linux 2.6的shell腳本中如何kill掉 sleep進程
你是說找到系統中所有名字為sleep的進程ID,並且殺死它們,是嗎?
我沒有LINUX平台測試,我使用的HP-UX,下面的代碼你可能需要適當調整才可以使用。
下面的命令可以找出系統中的所有進程:
ps -e
要查找所有名稱為sleep的經常,有的系統可以給ps使用-n參數,例如:
ps -n sleep
但是通用一點的辦法是在ps -e的結果裡面grep,下面的命令即可:
ps -e | grep sleep
前面的ps命令輸出了進程的ID、終端等信息,如果只需要ID內容,可以使用cut -c來獲取,例如:
ps -e | cut -c1-6
獲取上面輸出的所有PID到內存變數的shell語句是:
pids=`ps -e | cut -c1-6`