notifyd: call aplay using subprocess.Popen + replace os.system with subprocess.call
authorEvgeni Golov <evgeni@grml.org>
Fri, 16 Oct 2015 15:08:29 +0000 (17:08 +0200)
committerMichael Prokop <mika@grml.org>
Wed, 24 May 2017 07:13:31 +0000 (09:13 +0200)
Closes #2

usr_bin/notifyd.py

index cf94ee6..28d985c 100755 (executable)
@@ -47,6 +47,7 @@ import string
 import socket
 import logging
 import getopt
 import socket
 import logging
 import getopt
+import subprocess
 
 default_hostname = 'localhost'
 default_port = 1234
 
 default_hostname = 'localhost'
 default_port = 1234
@@ -58,12 +59,13 @@ default_logfile = None
 
 def play(sound_file):
     def play_wrapper(msg):
 
 def play(sound_file):
     def play_wrapper(msg):
-        os.system('/usr/bin/aplay "%s" 2> /dev/null &' % sound_file)
+        with open(os.devnull, 'w') as devnull:
+            subprocess.Popen(['/usr/bin/aplay', sound_file], stderr=devnull)
     return play_wrapper
 
 def execute(command):
     def command_wrapper(msg):
     return play_wrapper
 
 def execute(command):
     def command_wrapper(msg):
-        os.system(command % dict(msg = msg))
+        subprocess.call(command % dict(msg = msg))
     return command_wrapper
 
 def osd(msg):
     return command_wrapper
 
 def osd(msg):