如何解决异步监视和中断 shell 脚本
我有一个调用一些数据处理函数的 shell 脚本。这些功能可以长时间运行。 我想更新脚本以中断正在运行的过程,以防从外部来源看到某个“状态”。否则程序应该正常完成。
我编写了一个 monitor_status 函数并异步调用。如果找到状态,该函数会向主进程发送一个终止命令。我有以下问题
还请建议是否有更好的方法来处理这种情况以及我可以对脚本进行的任何其他改进
bash 脚本如下所示:
#!/bin/bash
function cleanup() {
echo "cleanup invoked"
if [[ -n "${child}" ]]; then
echo "Stopping the child"
kill "${child}" >/dev/null 2>&1 || true
fi
echo "cleanup done"
}
function main() {
echo "Starting main process"
# do long running data processing
echo "Exiting Main"
}
function monitor_status() {
echo "checking status"
$Status = get_status
if [[ $Status = "Terminate" ]]; then
echo "Alert Alert!!!"
kill -15 $$
fi
sleep 5
done
}
monitor_status &
main &
trap cleanup SIGTERM EXIT
child=$!
wait "${child}"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。