【shell】Linux限制命令運行時間(timeout)|規定命令運行時長


目錄

即看即用

常用舉例

發送指定的信號

停掉卡住的進程

運行在前台

詳細解釋


timeout 指定運行的命令最大運行時長,時間到則終止該命令。

timeout命令是GNU核心實用程序軟件包的一部分,該軟件包幾乎安裝在所有Linux發行版中

即看即用

 

常用舉例

默認單位是秒

5秒后終止ping操作:

[root@localhost ~]# timeout 5 ping www.baidu.com


5分鍾之后終止ping操作:
[root@localhost ~]# timeout 5m ping www.baidu.com

1天之后終止ping操作:

[root@localhost ~]# timeout 1d ping www.baidu.com

2.5秒之后終止ping操作:

[root@localhost ~]# timeout 2.5s ping www.baidu.com

發送指定的信號

當達到時間限制時,timeout將SIGTERM信號發送到受管命令。可以使用-s(-signal)選項指定要發送的信號。

 

5秒鍾后timeout 發送SIGKILL信號給ping命令,終止命令:

[root@localhost ~]# sudo timeout -s SIGKILL 5s ping www.baidu.com


5秒鍾后timeout 發送9號信號(即SIGKILL)給ping命令,終止命令:

[root@localhost ~]# sudo timeout -s 9 5s ping www.baidu.com


想要知道全部可用的信號,請使用 kill -l該命令查看全部的信號。

[root@localhost ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	
[root@localhost ~]#

 

停掉卡住的進程

SIGTERM,當超過時間限制時發送的默認信號可以被某些進程捕獲或忽略。在這種情況下,進程在發送終止信號后繼續運行。

要確保被執行的的命令終止,請使用-k(--kill after)選項,后面加一個時間。當達到給定的時間限制后會強制結束。

在下面的示例中,timeout命令運行一分鍾,如果命令沒有結束,將在10秒后終止命令:

[root@localhost ~]# timeout -k 10s 1m sh test.sh

運行在前台

默認情況下,timeout在后台運行托管命令。如果要在前台運行該命令,請使用--foreground選項:

[root@localhost ~]# timeout --foreground 5m ./script.sh

 

詳細解釋

原文:https://www.linuxprobe.com/linux-time-limit.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM