首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux运行有时间限制的命令—timeout命令

Linux运行有时间限制的命令—timeout命令

作者头像
胡齐
发布2020-02-25 09:28:42
11.7K0
发布2020-02-25 09:28:42
举报
文章被收录于专栏:运维猫运维猫

1、简介

timeout是用来控制程序运行的时间,运行指定的命令。如果在指定时间后仍在运行,则杀死该进程。使用timeout命令可以让程序在指定的时间内仍然运行则强制退出。

2、timeout命令常用格式

 [root@RedHat_test ~]# timeout [OPTION] DURATION COMMAND [ARG]...
 s : 秒 (默认)
 m : 分钟
 h : 小时
 d : 天
 长选项必须使用的参数对于短选项时也是必需使用的。
 -s : --signal=信号,指定在超时时发送的信号。信号可以是类似"HUP"的信号名或是信号数。,查看"kill -l"以获得信号列表
 --help        显示此帮助信息并退出
 --version        显示版本信息并退出
 # 如果不添加任何单位,默认是秒。如果DURATION为0,则关联的超时是禁用的。
 # 如果程序超时则退出状态数为124,否则返回程序退出状态。
 # 如果没有指定信号则默认为TERM 信号。TERM 信号在进程没有捕获此信号时杀死进程。
 # 对于另一些进程可能需要使用KILL (9)信号,当然此信号不能被捕获。

3、10秒后结束,top命令

 [root@RedHat_test ~]# timeout 10 top

4、5分钟之后终止ping操作

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

5、1天之后终止ping操作

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

6、发送SIGKILL信号给ping命令,5秒钟后终止

 [root@RedHat_test ~]# timeout -s SIGKILL 5s ping www.baidu.com
 PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.
 64bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1ttl=49time=4.03 ms
 64bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2ttl=49time=4.60 ms
 64bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3ttl=49time=4.30 ms
 64bytes from 180.101.49.12 (180.101.49.12): icmp_seq=4ttl=49time=4.40 ms

7、查看全部信号

 [root@RedHat_test ~]# kill -l
 1) SIGHUP2) SIGINT3) SIGQUIT4) SIGILL5) SIGTRAP
 6) SIGABRT7) SIGBUS8) SIGFPE9) SIGKILL10) SIGUSR1
 11) SIGSEGV12) SIGUSR213) SIGPIPE14) SIGALRM15) SIGTERM
 16) SIGSTKFLT17) SIGCHLD18) SIGCONT19) SIGSTOP20) SIGTSTP
 21) SIGTTIN22) SIGTTOU23) SIGURG24) SIGXCPU25) SIGXFSZ
 26) SIGVTALRM27) SIGPROF28) SIGWINCH29) SIGIO30) SIGPWR
 31) SIGSYS34) SIGRTMIN35) SIGRTMIN+136) SIGRTMIN+237) SIGRTMIN+3
 38) SIGRTMIN+439) SIGRTMIN+540) SIGRTMIN+641) SIGRTMIN+742) SIGRTMIN+8
 43) SIGRTMIN+944) SIGRTMIN+1045) SIGRTMIN+1146) SIGRTMIN+1247) SIGRTMIN+13
 48) SIGRTMIN+1449) SIGRTMIN+1550) SIGRTMAX-1451) SIGRTMAX-1352) SIGRTMAX-12
 53) SIGRTMAX-1154) SIGRTMAX-1055) SIGRTMAX-956) SIGRTMAX-857) SIGRTMAX-7
 58) SIGRTMAX-659) SIGRTMAX-560) SIGRTMAX-461) SIGRTMAX-362) SIGRTMAX-2
 63) SIGRTMAX-164) SIGRTMAX

8、timeout命令运行一分钟,如果命令没有结束,将在10秒后终止命令

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

9、timeout在后台托管

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

如果文章有任何错误欢迎不吝赐教,其次大家有任何关于运维的疑难杂问,也欢迎和大家一起交流讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维猫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、简介
  • 2、timeout命令常用格式
  • 3、10秒后结束,top命令
  • 4、5分钟之后终止ping操作
  • 5、1天之后终止ping操作
  • 6、发送SIGKILL信号给ping命令,5秒钟后终止
  • 7、查看全部信号
  • 8、timeout命令运行一分钟,如果命令没有结束,将在10秒后终止命令
  • 9、timeout在后台托管
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档