常用訊號:
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...