[20201123]timeout 命令學習筆記.txt
[20201123]timeout 命令學習筆記.txt
--//rh 7.0以上coreutils 包含幾個以前沒有見過的命令在coreutils,stdbuf以及timeout。今天學習一下timeout。
1.環境:
# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
2.測試:
# rpm -qif $(which timeout)
Name : coreutils
Version : 8.22
Release : 11.el7
Architecture: x86_64
Install Date: Tue 25 Feb 2020 08:20:43 PM CST
Group : System Environment/Base
Size : 14567245
License : GPLv3+
Signature : RSA/SHA256, Fri 04 Jul 2014 09:01:27 AM CST, Key ID 24c6a8a7f4a80eb5
Source RPM : coreutils-8.22-11.el7.src.rpm
Build Date : Tue 10 Jun 2014 09:08:24 AM CST
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <
Vendor : CentOS
URL :
Summary : A set of basic GNU tools commonly used in shell scripts
Description :
These are the GNU core utilities. This package is the combination of
the old GNU fileutils, sh-utils, and textutils packages.
# timeout 1 ping 192.168.100.78 | ts.awk
[2020-11-23 16:32:42] PING 192.168.100.78 (192.168.100.78) 56(84) bytes of data.
[2020-11-23 16:32:42] 64 bytes from 192.168.100.78: icmp_seq=1 ttl=64 time=0.374 ms
Terminated
--//實際上就是給某個命令限制執行時間。
# echo $?
143
# timeout -s SIGKILL 1 ping 192.168.100.78 | ts.awk
[2020-11-23 16:34:14] PING 192.168.100.78 (192.168.100.78) 56(84) bytes of data.
[2020-11-23 16:34:14] 64 bytes from 192.168.100.78: icmp_seq=1 ttl=64 time=0.367 ms
Killed
# timeout -s 9 1 ping 192.168.100.78 | ts.awk
[2020-11-23 16:36:33] PING 192.168.100.78 (192.168.100.78) 56(84) bytes of data.
[2020-11-23 16:36:33] 64 bytes from 192.168.100.78: icmp_seq=1 ttl=64 time=0.395 ms
Killed
# echo $?
137
--//注意如果這樣寫報錯:
# timeout 1 -s SIGKILL ping 192.168.100.78 | ts.awk
timeout: failed to run command '-s': No such file or directory
--//注意兩者發的訊號不一樣,預設是Terminated,至於 SIGNAL 可以執行kill -l確定。
137-9 = 128
143-128 = 15
# 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
--//預設發的SIGNAL是15 ,SIGTERM.
# timeout 1m ping -c 5 192.168.100.78
PING 192.168.100.78 (192.168.100.78) 56(84) bytes of data.
64 bytes from 192.168.100.78: icmp_seq=1 ttl=64 time=0.384 ms
^C
--- 192.168.100.78 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.384/0.384/0.384/0.000 ms
# echo $?
0
--//你也可以使用--preserve-status,保留命令退出狀態。
exit with the same status as COMMAND, even when the command times out
$ timeout --preserve-status 1 ping -c 5 192.168.100.71
PING 192.168.100.71 (192.168.100.71) 56(84) bytes of data.
$ echo $?
143
$ timeout 1 ping -c 5 192.168.100.71
PING 192.168.100.71 (192.168.100.71) 56(84) bytes of data.
$ echo $?
124
--//不理解--preserve-status引數含義。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2736159/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- lsof命令學習筆記筆記
- Redis 學習筆記命令Redis筆記
- Git命令學習筆記Git筆記
- 學習筆記:robots.txt檔案筆記
- Shells命令列學習筆記命令列筆記
- [20200224]windows命令學習筆記.txtWindows筆記
- 【Linux學習筆記】reboot命令Linux筆記boot
- oracle學習筆記-常用的命令Oracle筆記
- linux學習筆記---一些命令學習Linux筆記
- MongoDB 學習筆記之常用 shell 命令MongoDB筆記
- MySQL學習筆記之命令總結MySql筆記
- oracle學習筆記--oracle常用的命令Oracle筆記
- ZooKeeper 學習筆記一:常用命令筆記
- Linux 常用命令 學習筆記Linux筆記
- OpenSSL學習筆記:openssl命令列的使用筆記命令列
- git常用命令-Git學習筆記Git筆記
- numpy的學習筆記\pandas學習筆記筆記
- git status 命令總結 —— Git 學習筆記 06Git筆記
- Linux常用命令cp學習筆記Linux筆記
- git checkout 命令詳解—— Git 學習筆記 16Git筆記
- IT學習筆記筆記
- 學習筆記筆記
- 學習 Nginx 的一些筆記,命令配置等Nginx筆記
- 使用 seed 命令建立模擬資料(學習筆記)筆記
- git reset 命令詳解(二)—— Git 學習筆記 08Git筆記
- git reset 命令詳解(一)—— Git 學習筆記 07Git筆記
- Docker 入門學習筆記二:常用命令Docker筆記
- Linux學習筆記:常用100條命令(一)Linux筆記
- Linux學習筆記:常用100條命令(二)Linux筆記
- Linux學習筆記:常用100條命令(三)Linux筆記
- 《Linux系統free命令的使用》學習筆記Linux筆記
- 【linux學習筆記七】關機重啟命令Linux筆記
- 【學習筆記】數學筆記
- 《JAVA學習指南》學習筆記Java筆記
- Elasticsearch學習筆記Elasticsearch筆記
- Scala學習筆記筆記
- MySql學習筆記MySql筆記
- jQuery 學習筆記jQuery筆記