Python os.exec(): завершение при запуске "уведомить-отправить"

Я пишу небольшой скрипт Python под Linux, который выскакивает несколько libnotify всплывающие окна, в настоящее время с использованием следующего синтаксиса:

import os
os.execv('/usr/bin/notify-send', ['App Title', 'Message'])

К сожалению, и по какой-то странной причине он убивает переводчика прямо в командной строке.
Он не делает это ни с какой другой командой, выполняемой скриптом, просто notify-send,

Не выдается ни одна ошибка, ни одно известное исключение, ни одно указание на что-то не так, оно просто исчезает из командной строки.

У кого-нибудь есть предложения или альтернативы, которые одинаково легко сделать?

1 ответ

Решение

Вы должны использовать subprocess.call которая запускает программу, названную ее аргументами в новом процессе, и ожидает завершения дочернего процесса, а не os.execv который заменяет то, что выполняется в текущем процессе, программой, указанной его аргументами.

Использование subprocess.call(['/usr/bin/notify-send', 'App Title', 'Message'])

Другие вопросы по тегам