代码之家  ›  专栏  ›  技术社区  ›  zonzely

“notify send”命令在supervisor中不起作用

  •  0
  • zonzely  · 技术社区  · 7 年前

    我的操作系统是 Manjora17.1.12 ,Python版本是 3.7.0 ,并且主管的版本是 3.3.4 我有一个python脚本,它只是显示一个通知。代码是:

    import os
    
    os.system('notify-send hello')
    

    主管配置为:

    [program:test_notify]
    directory=/home/zz
    command=python -u test_notify.py
    stdout_logfile = /home/zz/supervisord.d/log/test_notify.log
    stderr_logfile = /home/zz/supervisord.d/log/test_notify.log
    

    但是,当我与主管一起执行python脚本时,它不会显示通知。

    1 回复  |  直到 6 年前
        1
  •  0
  •   dzekus    7 年前

    需要设置适当的环境变量(显示和;DBUS\会话\总线\地址)。根据你的需要,你可以用很多不同的方法来做,比如。

    import os
    
    os.system('DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus notify-send hello')
    

    b) 在全局脚本中

    import os
    
    os.environ['DISPLAY'] = ':0'
    os.environ['DBUS_SESSION_BUS_ADDRESS'] = 'unix:path=/run/user/1000/bus'
    os.system('notify-send hello')
    

    c) 在每个程序的管理器配置中

    [program:test_notify]
    ;
    ; your variables
    ;
    user=john
    environment=DISPLAY=":0",DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
    

    以上示例有几个假设(您可能需要相应地更改这些设置):

    • 脚本以用户john的身份运行
    • 显示通知:0

    Desktop_notifications .

    推荐文章