Zenity进度对话框和子进程

时间:2014-07-14 09:50:54

标签: bash progress-bar zenity

假设我们有一个bash脚本bash.sh和一个python脚本python.py。 python脚本无法修改。 (说,上游)

bash.sh是一个创建gui的zenity包装器脚本。 python.py最后在某处调用wget

bash.sh已调用python.py并显示zenity进度条,如下所示

./python.py | zenity --progress --pulsate --auto-close

所以来电是:bash.sh => python.py => wget

如果我点击"取消"在wget下载开始之前,它被取消并且python.py脚本退出,如下所示:

Traceback (most recent call last):
File "python.py", line 41, in <module>
print(s.encode('utf-8')) IOError: [Errno 32] Broken pipe

但是如果wget下载开始,请点击&#34;取消&#34;什么都不做。进度对话框保持打开状态,不关闭任何内容。

我应该怎么做,以便取消&#34;取消&#34;按钮停止wget下载?

1 个答案:

答案 0 :(得分:0)

我刚刚发布了一篇文章,解释了在取消zenity进度对话框时如何真正杀死所有子进程。

可在http://bernaerts.dyndns.org/linux/331-linux-cancel-zenity-progress-dialog-right-way

获取

它应该为您提供解决此问题的简单解决方案。

干杯。