Commit 942c9742 authored by Devaev Maxim's avatar Devaev Maxim

Fixed bug with options parsing, added options for get daemon pids and state

parent b9f7b874
......@@ -22,6 +22,7 @@ def help() :
"\t--use-syslog=<yes|no> -- Force enable or disable useage of syslog\n"
"\t--bus-type=<system|session> -- Use system or session bus, replace value from config\n"
"\t-d, --daemon -- Run application as daemon, by default using interactive mode\n"
"\t-s, --status -- Check status of daemon\n"
"\t-k, --kill -- Kill daemon process" % (const.MY_NAME) )
def version() :
......@@ -36,8 +37,8 @@ if __name__ == "__main__" :
daemon_mode_flag = False
try :
(opts_list, args_list) = getopt.getopt(sys.argv[1:], "hdk", ( "help", "version",
"log-level=", "use-syslog=", "bus-type=", "daemon", "kill" ))
(opts_list, args_list) = getopt.getopt(sys.argv[1:], "hdsk", ( "help", "version",
"log-level=", "use-syslog=", "bus-type=", "daemon", "status", "kill" ))
for (opts_list_item, args_list_item) in opts_list :
if opts_list_item in ("-h", "--help") :
......@@ -48,21 +49,21 @@ if __name__ == "__main__" :
version()
sys.exit(0)
elif opts_list_item in ("--log-level") :
elif opts_list_item in ("--log-level",) :
try :
log_level = validators.validRange(int(args_list_item), const.ALL_LOG_LEVELS_LIST)
except Exception, err1 :
print "Incorrect option \"%s\": %s" % (opts_list_item, str(err1))
sys.exit(1)
elif opts_list_item in ("--use-syslog") :
elif opts_list_item in ("--use-syslog",) :
try :
use_syslog_flag = validators.validBool(args_list_item)
except Exception, err1 :
print "Incorrect option \"%s\": %s" % (opts_list_item, str(err1))
sys.exit(1)
elif opts_list_item in ("--bus-type") :
elif opts_list_item in ("--bus-type",) :
try :
bus_type = validators.validRange(args_list_item, const.ALL_BUS_TYPES_LIST)
except Exception, err1 :
......@@ -72,10 +73,16 @@ if __name__ == "__main__" :
elif opts_list_item in ("-d", "--daemon") :
daemon_mode_flag = True
elif opts_list_item in ("-s", "--status") :
try :
sys.exit(abs(daemon.daemonStatus()))
except Exception, err1 :
print "Daemon status error: %s" % (str(err1))
sys.exit(1)
elif opts_list_item in ("-k", "--kill") :
try :
daemon.killDaemon()
sys.exit(0)
sys.exit(abs(daemon.killDaemon()))
except Exception, err1 :
print "Daemon kill error: %s" % (str(err1))
sys.exit(1)
......
......@@ -106,6 +106,18 @@ def killDaemon() :
os.kill(pids_list_item, signal.SIGTERM)
logger.info("SIGTERM has been sended to %s process \"%s\" with pid \"%d\"" % (
const.MY_NAME, os.path.basename(sys.argv[0]), pids_list_item ))
return 0
else :
logger.error("Cannot determine a %s daemon process of \"%s\"" % (const.MY_NAME, os.path.basename(sys.argv[0])))
return -1
def daemonStatus() :
pids_list = pidsListOfPythonProc(sys.argv[0], ["-s", "--status"], os.getuid())
if len(pids_list) != 0 :
for pids_list_item in pids_list :
logger.info("%s daemon has been founded with pid \"%d\"" % (const.MY_NAME, pids_list_item))
return 0
else :
logger.error("Cannot determine a %s daemon process of \"%s\"" % (const.MY_NAME, os.path.basename(sys.argv[0])))
return -1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment