سؤال إعلام - إرسال لا يعمل مع الجذر على أوبونتو 14.04


لدي برنامج نصي صغير python أن أبدأ باستخدام برنامج نصي shell المخزنة في "/etc/X11/Xsession.d" 

الرمز بسيط للغاية وهو يعرض رسالة إعلام

import os
import time

while True:
      os.system('notify-send -i "/opt/say/logo.png" "Title" "Message"')
time.sleep(30) 

الرمز ببساطة يعرض رسالة إعلام كل 30 ثانية. يعمل على Ubuntu 12.04 بدون أي مشكلة ، لكنه لا يعمل على Ubuntu 14.04. البرنامج النصي shell في "/etc/X11/Xsession.d"  تشغيل كجذر ونتيجة لذلك تشغيل رمز بيثون الخاص بي مع امتيازات الجذر. لا أريد حقا امتيازات الجذر. كل ما أريده هو أن أتمكن من رؤية الإشعار.


2
2017-08-22 23:21


الأصل




الأجوبة:


يجب عليك إرسال رسالة الإعلام كمستخدم رئيسي عادي لنظامك ، (رقم تعريف ususally 1000):

#!/bin/bash
MAINUSER=$(cat /etc/passwd|grep 1000|sed "s/:.*$//g")
su $MAINUSER -c $"notify-send -i \"/opt/say/logo.png\" \"Title\" \"Message\""

(لست متأكدا ، كيف نسميها مثل هذا في نص بيثون الخاص بك ، ولكن آمل أن يساعد)


2
2017-10-15 18:15