使用timeout命令可以设置运行其他命令和程序的时间限制,如果程序运行的时间超过了设置的限制,timeout会杀死它。
看看如何使用这个命令。
在Linux中使用timeout命令
以下是timeout命令的语法:timeout [options] seconds command
可以看到,时间总是以秒为单位设置。
举一个示例sleep命令,sleep命令是'休眠'直到分配的时间,这意味着它只等了这么多秒。timeout 4 sleep 10
如果我使用sleep 10,shell将等待10秒,但是,如果我把timeout设置为4秒,那么应该在10秒内运行的sleep命令就以4秒结束。
默认情况下,timeout命令发送SIGTERM以礼貌地杀死正在运行的程序,你可以使用-s选项发送其他信号。
您可以使用kill -l命令查看Linux中的所有kill信号。假设你想要发送SIGKILL信号(杀死-9 )而不是默认的SIGTERM,你可以使用以下方法:timeout -s SIGKILL 3 sleep 30
您也可以使用KILL或9(kill -l中列出的SIGKILL编号)代替SIGKILL。
强制杀死程序不是一件好事。但是一个程序可以忽略SIGTERM。
更好的处理方法是仅在正在运行的程序忽略您的初始终止请求时发送终止信号。
假设你想运行一个不超过5秒的程序,但是,如果正在运行的程序拒绝停止,在发送默认SIGTERM后,发送终止信号3秒,以下是你可以使用的内容:timeout -k 3 5 program
这意味着你的程序不会运行超过8秒,你可以使用time命令检查程序的实际运行时间。