我正在运行一个 shell 脚本,类似于 bash 中的 sh script.sh
。该脚本包含许多行,其中一些需要几秒钟,而另一些需要几天才能执行。如何终止 sh
命令但不终止其当前正在运行的命令(脚本的当前行)?
最佳答案
您没有具体指定“终止”脚本时应该发生什么,但我假设您希望当前正在执行的行完成并退出,然后再做任何工作。
这可能最好的实现方式是将脚本编码为能够接收这样的 kill 命令并以适当的方式响应 - 我认为在 linux 中没有任何魔法可以做到这一点。
例如:
- 你可以捕获一个信号然后设置一个变量
- 检查文件是否存在(例如
touch/var/tmp/trigger
)
然后在脚本的每一行之后,您需要检查是否每个陷阱都已被调用(或您的触发器文件已创建),然后退出。如果尚未设置触发器,则继续进行下一项工作。
据我所知,您无法捕获 SIGKILL
(-9) - 如果有人将其发送到您的进程,那么它就会死掉。
HTH,王牌
关于linux - 如何在不杀死当前执行行的情况下杀死shell脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32749016/