新聞中心
timeout是用來(lái)控制程序運(yùn)行的時(shí)間,運(yùn)行指定的命令。如果在指定時(shí)間后仍在運(yùn)行,則殺死該進(jìn)程。使用timeout命令可以讓程序在指定的時(shí)間內(nèi)仍然運(yùn)行則強(qiáng)制退出。

“專業(yè)、務(wù)實(shí)、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個(gè)人一直以來(lái)堅(jiān)持追求的企業(yè)文化。 創(chuàng)新互聯(lián)是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、設(shè)計(jì)服務(wù)業(yè)務(wù)。我們始終堅(jiān)持以客戶需求為導(dǎo)向,結(jié)合用戶體驗(yàn)與視覺(jué)傳達(dá),提供有針對(duì)性的項(xiàng)目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場(chǎng),引領(lǐng)市場(chǎng)!
如何使用
語(yǔ)法格式:
timeout [OPTION] DURATION COMMAND [ARG]...
DURATION可以是正整數(shù)或浮點(diǎn)數(shù),后跟可選的后綴:
如果不添加任何單位,默認(rèn)是秒。如果DURATION為0,則關(guān)聯(lián)的超時(shí)是禁用的。
實(shí)例
5秒后終止ping操作:
[root@localhost ~]# timeout 5 ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=16.3 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=17.6 ms
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
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=15.6 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=15.6 ms
發(fā)送指定的信號(hào)
如果未給出任何信號(hào),則當(dāng)達(dá)到時(shí)間限制時(shí),timeout將SIGTERM信號(hào)發(fā)送到受管命令??梢允褂?s(-signal)選項(xiàng)指定要發(fā)送的信號(hào)。
發(fā)送SIGKILL信號(hào)給ping命令,5秒鐘后終止:
[root@localhost ~]# sudo timeout -s SIGKILL 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=17.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.6 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=16.7 ms
Killed
信號(hào)可以指定他的名字也可以指定他序號(hào)。下面使用的事SIGKILL的序號(hào),5秒鐘后終止操作:
[root@localhost ~]# sudo timeout -s 9 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=15.5 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=16.3 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=5 ttl=55 time=22.0 ms
Killed
想要知道全部可用的信號(hào),請(qǐng)使用 kill -l該命令查看全部的信號(hào)。
[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 ~]#
停掉卡住的進(jìn)程
SIGTERM,當(dāng)超過(guò)時(shí)間限制時(shí)發(fā)送的默認(rèn)信號(hào)可以被某些進(jìn)程捕獲或忽略。在這種情況下,進(jìn)程在發(fā)送終止信號(hào)后繼續(xù)運(yùn)行。
要確保被執(zhí)行的的命令終止,請(qǐng)使用-k(–kill after)選項(xiàng),后面加一個(gè)時(shí)間。當(dāng)達(dá)到給定的時(shí)間限制后會(huì)強(qiáng)制結(jié)束。
在下面的示例中,timeout命令運(yùn)行一分鐘,如果命令沒(méi)有結(jié)束,將在10秒后終止命令:
[root@localhost ~]# timeout -k 10s 1m sh test.sh
運(yùn)行在前臺(tái)
默認(rèn)情況下,timeout在后臺(tái)運(yùn)行托管命令。如果要在前臺(tái)運(yùn)行該命令,請(qǐng)使用–foreground選項(xiàng):
[root@localhost ~]# timeout --foreground 5m ./script.sh
本文名稱:Linuxtimeout命令使用實(shí)例
標(biāo)題URL:http://fisionsoft.com.cn/article/coijhjh.html


咨詢
建站咨詢
