shell腳本中的一系列命令如何在不受任何其他進程干擾的情況下執行?無中斷地執行Shell腳本
0
A
回答
0
你的意思是,沒有被搶佔?沒門。內核調度程序可以隨時選擇要執行的任務。但是,在Linux上,您可以設置「實時」優先級(即SCHED_FIFO或SCHED_RR),以確保腳本不會被中斷以執行較低優先級的任務。
0
如果你問如何讓shell進程忽略中斷或其他信號,答案是通過trap
命令。
trap "" 2
或:
trap "" INT
要取消的行爲,不列出在字符串中的任何東西:
trap 2
trap INT
如果您需要刪除中斷(及相關信號的臨時文件),你可以使用類似的東西:
tmp=$(mktemp ${TMPDIR:-/tmp}/name.XXXXXX)
trap "rm -f $tmp; exit 1" 0 1 2 3 13 15 # EXIT HUP INT QUIT PIPE TERM
...do operations using temporary files...
rm -f $tmp
trap 0 # Cancel the exit trap
顯示的這組信號是一個非常全面的集合,覆蓋了大部分正常事件。如果您發送SIGKILL(kill -9
),臨時將留下 - 沒有什麼可以做的。 mktemp
命令安全地創建該文件(請參閱Why do we need mktemp
?),但實際上在創建文件和爲腳本設置陷阱之間留下一個小小的機會窗口,以便讓腳本中斷,並將臨時文件留在周圍。
相關問題
- 1. 無法執行shell腳本
- 2. 無法在php中執行shell腳本
- 3. 執行shell腳本
- 4. 執行shell腳本
- 5. 在shell腳本中執行php腳本?
- 6. 執行n行shell腳本
- 7. 無法執行ls使用shell腳本
- 8. 從shell腳本執行symbolicatecrash
- 9. 難執行shell腳本
- 10. 從shell執行R腳本
- 11. 未執行shell腳本
- 12. 從shell腳本執行SQL
- 13. 執行shell腳本程序
- 14. 從mac執行Shell腳本
- 15. shell腳本的Ruby腳本執行
- 16. 從本地機器的shell腳本執行遠程機器上的shell腳本
- 17. 在豬中執行本地shell腳本命令
- 18. 無法在Cygwin來執行shell腳本作爲KornShell腳本
- 19. 無法通過shell腳本執行sql腳本
- 20. 在PHP中執行shell腳本
- 21. 在ubuntu中執行shell腳本
- 22. 在Applescript中執行shell腳本嗎?
- 23. 從PHP代碼中執行shell腳本
- 24. 如何在cygwin中執行shell腳本?
- 25. 在Gradle中執行shell腳本
- 26. 中止執行shell腳本錯誤
- 27. shell腳本在步驟中執行
- 28. 在zip存檔中執行shell腳本
- 29. 在Applescript中執行Shell腳本問題
- 30. 執行shell腳本的NodeJS代碼中
不要中斷它們。 – 2013-10-25 12:44:13
你的意思是什麼樣的「中斷」?你能給個例子嗎? –