linux shell 控制指令碼

2022-08-29 12:18:15 字數 2028 閱讀 8096

常用訊號:

1,sighup 掛起程序

2,sigint   終止程序

3,sigout  停止程序

9,sigquit 無條件終止程序

15,sigterm 可能的話終止程序

17,sigstop 無條件停止程序,但不是終止程序

18,sigtstp 停止或暫停程序,但不終止程序

19,sigcont 繼續執行停止的程序

預設情況下bash shell 會忽略收到的 sigquit和sigterm,但是會處理sighup和sigint

產生訊號:

終止程序  ctrl + c 會產生sigint訊號

暫停程序  ctrl + z 會產生sigtstp訊號

捕捉訊號:

trap命令   trap commands signals

執行結果如下:

使用ctrl + c,指令碼會執行trap命令中指定的echo語句。而不是忽略此訊號,並允許shell停止該指令碼。

捕捉指令碼的退出

退出時執行 trap裡面的echo語句

移除捕捉:

- 破折號用來移除訊號捕捉。但是,如果在捕捉被移除之前就收到訊號,還是會處理的,如下圖:

在命令後面加 & 就可以在後台執行了

可以同時在後台執行多個程式

nohup commands  & 即使關閉會話該程序也不會結束,結果會儲存在 nohub.out檔案裡

檢視作業

jobs檢視作業

+號預設作業,-號預設作業完了之後額預設作業,同時最多只能有乙個+號和乙個-號

重啟停止的作業

對於停止的作業,可以用bg 作業好或者fg作業號重啟作業。

bg是以後臺模式重啟作業,fg是前台模式重啟作業

排程優先順序 -20(最高)到+20(最低),預設情況以優先順序0來啟動所有程序

nice命令  nice -n 10 bash test1.sh &  改變優先順序,

普通使用者是無法提公升優先順序的

renice命令允許你改變已經允許程序的優先順序,renice 10 -p 12345

只能對屬於自己的程序執行renice

普通使用者只能降低程序優先順序

root使用者可以增加和降低優先順序

at命令來計畫執行作業  at [ -f  filename ] time

支援的時間格式

小時分鐘  10:20

am/pm     10:20~pm

特定命名   now  noon   midinight  teatime

標準日期   mmddyy    mm/dd/yy   dd.mm.yy

文字日期   jul 4或者 dec 25 

或者時間增量

當前時間+30 min

明天 10:20~pm

10:20 + 7天

使用at是 作業會提交到作業對了 job queue中,通常用小寫字母a~z來引用,字母排序越高,執行優先順序越低,可以用-q指定不同的佇列字母。

atq檢視佇列

atrm刪除作業

計畫定期執行指令碼

crontab -e 來新增定時任務

min hour dayofmonth month dayofweek command

開機時執行指令碼

/etc/inittab 檔案列出系統執行級別  run level

Linux shell之如何控制指令碼

寫在前面 案例 常用 歸類 解釋說明。by jim ctrl c組合鍵可以生產sigint訊號 ctrl z組合鍵生產sigtstp訊號,停止程序後程式仍然留在記憶體中,能夠從停止的地方繼續執行。捕獲訊號 bin bash testing output in a background job tra...

Linux shell之如何控制指令碼

寫在前面 案例 常用 歸類 解釋說明。by jim ctrl c組合鍵可以生產sigint訊號 ctrl z組合鍵生產sigtstp訊號,停止程序後程式仍然留在記憶體中,能夠從停止的地方繼續執行。捕獲訊號 bin bash testing output in a background job tra...

Linux shell程式設計之控制指令碼之定時執行

目錄 控制指令碼之定時執行 cron時間表 系統不關機情況下 與cron相關的檔案和目錄 anacron crontab定時任務 定時任務實戰 cron時間表 系統不關機情況下 linux使用cron程式 通過檢查cron時間表 來計畫要定期執行的指令碼 每個使用者 包括root 都有自身的cron...