我想启动一个超时程序,如何使用 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