def startup(): # Get Name of Operating System os_name = platform.system() # Initialize Configuration File configFile = ConfigFileManager(CONFIG_FILE_PATH) instance_ID = configFile.poll("Program", "instance_ID") # Don't allow multiple instances of Jarvis to run concurrently if not(isinstance(instance_ID,str) and instance_ID == "NaN"): print "Multiple Instances Running, Start-up Failure." return # Operating System Check if os_name == "Windows" or os_name == "Linux": print "Jarvis is Running!" # Initialize Configuration File configFile.update("Program", "status", "NaN") configFile.update("Program", "instance_id", "NaN") configFile.update("Program", "error_code", "NaN") command_str = "python main.py" if os_name == "Windows": process_obj = subprocess.Popen(command_str.split(), creationflags=subprocess.CREATE_NEW_PROCESS_GROUP) configFile.update("Program", "instance_ID", process_obj.pid) print "Windows Version Created!" else: # Create New Process Group os.setpgrp() # spawn JARVIS process_obj = subprocess.Popen(command_str.split(), shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE) configFile.update("Program", "instance_ID", process_obj.pid) else: print "I'm sorry, you are running " + os_name + ". I currently only run on Windows/Linux" return
def shutdown(error_code = 0): # Initialize Configuration File configFile = ConfigFileManager(CONFIG_FILE_PATH) configFile.update("Program", "instance_ID", "NaN") configFile.update("Program", "status", STATE_OFF) configFile.update("Program", "error_code", error_code)