From 7c9dd7bf97db1364d950393aecddcb75ae17838e Mon Sep 17 00:00:00 2001 From: Pekka Helenius Date: Thu, 21 May 2020 18:25:15 +0300 Subject: [PATCH] Agent: add process checks --- tools/pamusb-agent | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tools/pamusb-agent b/tools/pamusb-agent index 0cec85d..b06da3e 100755 --- a/tools/pamusb-agent +++ b/tools/pamusb-agent @@ -20,6 +20,7 @@ import sys import pwd import getopt import signal +import fcntl import re import subprocess import syslog @@ -33,6 +34,23 @@ from gi.repository import UDisks import xml.etree.ElementTree as et +def processCheck(): + + global filelock + filelock=open(os.path.realpath(__file__),'r') + + try: + fcntl.flock(filelock,fcntl.LOCK_EX|fcntl.LOCK_NB) + except: + print('Process is already running.') + sys.exit(1) + + if os.getuid() != 0: + print('Process must be run as root.') + sys.exit(1) + +processCheck() + class HotPlugDevice: def __init__(self, serial): self.__udi = None