実行時間が制限された(タイムアウト)にLinuxコマンド

タイムアウトはまだ時間の一定期間後に実行し、その後、コマンドを終了した場合、指定されたコマンドを実行するコマンドラインユーティリティです。timeoutコマンドは、GNUコアユーティリティパッケージの一部で、パッケージは、ほとんどすべてのLinuxディストリビューションにインストールされています

使い方

構文:

timeout [OPTION] DURATION COMMAND [ARG]...    

DURATIONは、オプションのサフィックスが続く正の整数または浮動小数点数であることができます。

S - 秒(デフォルト)

M - 分

時間 - 時間

D - デイ

あなたが任意のユニットを追加していない場合、デフォルトは秒です。タイムアウトであれば期間は、その後、無効に関連する0です。

pingの終了後5秒:

[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

PINGを終了した後、1日目:

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

pingの終了後2.5秒:

[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

ここに画像を挿入説明
指定された信号は、送信
制限時間に達した任意の信号を与えられていない場合、タイムアウトが管理SIGTERM信号にコマンドを送信します。あなたは、-sを使用することができます(-signal)オプションは、送信するシグナルを指定します。

5秒の終了後に、pingコマンドにSIGKILLを送信します。

[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

ここに画像を挿入説明
彼の名前は信号も彼の番号を指定することができます指定することができます。物事のSIGKILLの数は、動作を終了、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

ここに画像を挿入説明
利用可能なすべての信号を知りたい、使用することは、すべての信号を表示するには、-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後)オプションを使用します。与えられた時間制限に達した後の端を強制します。

次の例では、timeoutコマンドは、コマンドが終了していない場合、コマンドは10秒後に終了します、1分を実行しています:

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

フォアグラウンドで実行されています

デフォルトでは、タイムアウトの実行は、バックグラウンドでコマンドを管理します。あなたがフォアグラウンドでこのコマンドを実行したい場合は、-foregroundオプションを使用します。

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

概要

コマンドタイムアウト制限時間を操作するためのコマンド。多くの場合、制限時間を与えられ、ちょうどコマンドは十分です与えます。

公開番号より転載:
ここに画像を挿入説明

彼は183元の記事を発表 ウォン称賛17 ビュー30000 +

おすすめ

転載: blog.csdn.net/weixin_42506599/article/details/104419184