如何解决不经过TRAP停止Python进程-Shell脚本
我有一个调用python脚本的父shell脚本。为了在python脚本失败的情况下进行通知,已在shell脚本中添加了TRAP。但是以某种方式,由于某种原因,Python脚本会被杀死/停止,而没有通过TRAP函数。
请求帮助脚本可以以这种方式运行的情况
Shell脚本(父进程): parent.sh
set -e
on_exit(){
if [ "$?" -eq 0 ]
then
echo "Success"
else
echo "Failure"
fi
}
trap on_exit EXIT
py_script=$(python child.py)
Python脚本(子进程):child.py
def func():
isDone = "false"
while isDone == "false":
print("Waiting")
try:
## GET request which sets isDone="true" on specific value
except Exception as e:
print("Something went wrong")
sys.exit(1)
time.sleep(10)
print("Completed")
Python脚本从不打印“出了点问题”。 如果Linux运行约12个小时,是否有可能在后台杀死进程?
编辑: 对其进行了进一步调查,并了解到python进程仍在后台运行而不执行任何操作。手动杀死它后,它会发出通知。
但是问题仍然存在,在哪种情况下进程可以进入状态而无需执行更多行而不会被杀死。我不知道任何待处理状态。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。