You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用`time`运行程序时SIGINT无效,如何彻底终止进程?

解决time进程无法彻底终止且遗留sleep子进程的问题

问题原因

/usr/bin/time作为独立进程启动sleep后,二者属于同一个进程组:

  • 发送SIGINT时,time进程默认会忽略该信号,因此无法终止;
  • 发送SIGTERM仅会终止time进程,但未同步向其子进程sleep发送终止信号,导致sleep成为孤儿进程继续运行。

彻底终止的方法

方法1:杀死整个进程组

利用进程组ID(与time进程PID相同,以负号标识),向整个进程组发送终止信号,同时杀死time和sleep:

kill -TERM -$pid
# 若需要强制终止,可使用SIGKILL
kill -KILL -$pid

方法2:先终止子进程再终止父进程

通过pgrep找到sleep的PID,先杀死sleep再终止time:

# 找到sleep的PID
sleep_pid=$(pgrep -P $pid)
# 先杀sleep,再杀time
kill $sleep_pid
kill $pid

验证效果

执行完终止命令后,可通过ps aux | grep -E "time|sleep"确认两个进程均已退出。

内容的提问来源于stack exchange,提问作者Bubaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:42:03