in src/mount_efs/__init__.py [0:0]
def start_watchdog(init_system):
if init_system == "init":
proc = subprocess.Popen(
["/sbin/status", WATCHDOG_SERVICE],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True,
)
status, _ = proc.communicate()
if "stop" in str(status):
subprocess.Popen(
["/sbin/start", WATCHDOG_SERVICE],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
close_fds=True,
)
elif "start" in str(status):
logging.debug("%s is already running", WATCHDOG_SERVICE)
elif init_system == "systemd":
rc = subprocess.call(
["systemctl", "is-active", "--quiet", WATCHDOG_SERVICE], close_fds=True
)
if rc != 0:
subprocess.Popen(
["systemctl", "start", WATCHDOG_SERVICE],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
close_fds=True,
)
else:
logging.debug("%s is already running", WATCHDOG_SERVICE)
elif init_system == "launchd":
rc = subprocess.Popen(
["sudo", "launchctl", "list", WATCHDOG_SERVICE],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
close_fds=True,
)
if rc != 0:
if not os.path.exists(WATCHDOG_SERVICE_PLIST_PATH):
fatal_error(
"Watchdog plist file missing. Copy the watchdog plist file in directory /Library/LaunchAgents"
)
subprocess.Popen(
["sudo", "launchctl", "load", WATCHDOG_SERVICE_PLIST_PATH],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
close_fds=True,
)
else:
logging.debug("%s is already running", WATCHDOG_SERVICE)
else:
error_message = 'Could not start %s, unrecognized init system "%s"' % (
WATCHDOG_SERVICE,
init_system,
)
sys.stderr.write("%s\n" % error_message)
logging.warning(error_message)