Blob Blame History Raw
--- wallpapoz-0.6.1/share/wallpapoz/lib/wallpapoz_system.py.kill_multi	2011-12-30 14:49:25.000000000 +0900
+++ wallpapoz-0.6.1/share/wallpapoz/lib/wallpapoz_system.py	2011-12-30 14:49:25.000000000 +0900
@@ -180,3 +180,17 @@
     print "os.execvp failed, exiting..."
     sys.exit(1)
 
+  def prevent_multiple_start(self):
+    cpid = os.getpid()
+    cid = os.getuid()
+
+    wallpapoz_cmd = "pgrep -U %i -f daemon_wallpapoz" %cid
+    python_cmd = "pgrep -U %i -f python" %cid
+
+    wallpapoz_id_list = os.popen(wallpapoz_cmd).read().splitlines()
+    python_id_list = os.popen(python_cmd).read().splitlines()
+
+    for id_list in wallpapoz_id_list:
+      if ( id_list in python_id_list ) and ( int(id_list) != cpid) :
+        os.kill(int(id_list), signal.SIGTERM)
+
--- wallpapoz-0.6.1/src/daemon_wallpapoz.kill_multi	2011-12-30 14:49:25.000000000 +0900
+++ wallpapoz-0.6.1/src/daemon_wallpapoz	2011-12-30 14:52:08.000000000 +0900
@@ -99,6 +99,9 @@
   # by calling external program
   wallpapoz_system = WallpapozSystem()
 
+  # Kill other daemon_wallpapoz if running
+  wallpapoz_system.prevent_multiple_start()
+
   # type of window manager (gnome or xfce)
   window_manager = wallpapoz_system.window_manager