【问题标题】:Zenity progress dialog and child processesZenity 进度对话框和子进程
【发布时间】:2014-07-14 09:50:53
【问题描述】:

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

bash.sh 是一个 zenity 包装脚本,用于创建 gui。 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 下载开始,单击“取消”绝对不会执行任何操作。进度对话框保持打开状态,没有关闭任何内容。

我应该怎么做,让“取消”按钮停止 wget 下载?

【问题讨论】:

    标签: bash progress-bar zenity


    【解决方案1】:

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

    可通过http://bernaerts.dyndns.org/linux/331-linux-cancel-zenity-progress-dialog-right-way获取

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

    干杯。

    【讨论】:

    • 如果一个程序的两个实例正在运行怎么办?那么它就不是故障保险了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多