Fix import error and kill existing antidrift windows on start
parent
1a99219851
commit
00a6d2a00a
|
@ -7,6 +7,7 @@ import re
|
|||
import sys
|
||||
import time
|
||||
|
||||
import antidrift.xwindow as xwindow
|
||||
from antidrift.xwindow import XWindow
|
||||
from antidrift.config import Config, State, Block
|
||||
from gi.repository import GLib, Gio
|
||||
|
|
16
main.py
16
main.py
|
@ -5,6 +5,7 @@ import os
|
|||
import signal
|
||||
import subprocess
|
||||
import argparse
|
||||
import psutil
|
||||
import rich
|
||||
from rich.logging import RichHandler
|
||||
from pathlib import Path
|
||||
|
@ -76,6 +77,20 @@ def check_for_xdotool():
|
|||
sys.exit(1)
|
||||
|
||||
|
||||
def kill_existing_antidrift():
|
||||
current_pid = os.getpid()
|
||||
for proc in psutil.process_iter(['pid', 'name', 'exe']):
|
||||
if proc.info['name'] == '/usr/bin/antidrift' or proc.info['exe'] == '/usr/bin/antidrift':
|
||||
if proc.info['pid'] == current_pid:
|
||||
continue # don't kill ourselves
|
||||
try:
|
||||
proc.kill()
|
||||
except psutil.AccessDenied:
|
||||
pass
|
||||
except psutil.NoSuchProcess:
|
||||
pass
|
||||
|
||||
|
||||
def main_daemon(config):
|
||||
if os.geteuid() == 0:
|
||||
newpid = os.fork()
|
||||
|
@ -84,6 +99,7 @@ def main_daemon(config):
|
|||
AntiDriftDaemon(config).run()
|
||||
else:
|
||||
if sys.argv[0] == "antidrift":
|
||||
kill_existing_antidrift()
|
||||
cmd = ["sudo", "antidrift", "--daemon"]
|
||||
subprocess.Popen(cmd)
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue