我正在 Linux 下编写一个小的 Python 脚本,它会弹出一些 libnotify
弹出窗口,目前使用以下语法:
import os
os.execv('/usr/bin/notify-send', ['App Title', 'Message'])
不幸的是,由于某些奇怪的原因,它直接杀死了命令提示符下的解释器。
它不会对脚本执行的任何其他命令执行此操作,只是 notify-send
。
没有给出错误,没有抛出已知异常,没有任何错误迹象,它只是消失在命令提示符下。
有没有人有同样容易做到的建议或替代方案?
最佳答案
您应该使用 subprocess.call
来启动一个新进程中由其参数命名的程序并等待子进程退出,而不是 os.execv
替换当前进程中正在运行的程序及其参数指定的程序。
用法是subprocess.call(['/usr/bin/notify-send', 'App Title', 'Message'])
关于Python os.exec() : Termination on running 'notify-send' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13506600/