超时终止进程

超时终止进程

我想启动一个超时程序,如何使用 SIGINT 和 SIGKILL 终止该进程?如果程序在 5 秒内没有终止,则发送 SIGINT。如果 10 秒(总计)后它仍在运行,请发送 SIGKILL。

我已经做了 timeout -s SIGINT nano; timeout -s SIGKILL nano 但它不起作用,有人可以帮助我吗?

答案1

超时命令有一个您未使用的持续时间选项。

根据手册:

超时 [选项] 持续时间命令 [ARG]...

无论如何,您使用的构造将不起作用。 (例如使用两个单独的命令)。

我实际上建议使用 timelimit 命令,它更加一致。安装它:

sudo apt-get install timelimit

从手册中:

timelimit [-pq] [-S Killsig] [-s warnsig] [-T Killtime] [-t warntime] 命令 [参数 ...]

链接:

人的时间限制

http://manpages.ubuntu.com/manpages/utopic/man1/timelimit.1.html

我的脚本的实际用法示例是:

timelimit -q -t1 -T30 command

相关内容