如何终止在Shell脚本中无限运行的命令?

时间:2018-10-11 01:25:23

标签: linux bash shell

我的shell脚本中有此命令,该命令可以永远运行-除非执行ctrl-c,否则它不会完成。我一直在尝试查找如何将ctrl-c信号发送到脚本,并且所有答案都已经被杀死了!或杀死$$等。我的问题是该命令永远不会完成,因此它永远不会继续执行下一个命令,例如我的“ kill”命令或其他任何命令。我必须手动在终端中按ctrl-C才能执行kill $!。我敢肯定有一种方法可以解决此问题,但我不确定是什么。预先感谢!

1 个答案:

答案 0 :(得分:0)

有几种方法可以解决此问题。最简单(但不是最可靠)的方法是(也许)仅在后台运行长时间运行的命令:

#!/bin/sh

long-running-command &   # run in the background
sleep 5  # sleep for a bit
kill %1  # send SIGTERM to the command if it's still running
相关问题