From 35a40614e5be2e57f29e930ad31ee41a36d8bb03 Mon Sep 17 00:00:00 2001 From: Devaev Maxim Date: Sat, 12 Oct 2019 00:00:40 +0300 Subject: use process_name_prefix to kill ustreamer --- kvmd/apps/cleanup/__init__.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'kvmd/apps') diff --git a/kvmd/apps/cleanup/__init__.py b/kvmd/apps/cleanup/__init__.py index 3314066c..57823ff1 100644 --- a/kvmd/apps/cleanup/__init__.py +++ b/kvmd/apps/cleanup/__init__.py @@ -72,22 +72,23 @@ def _clear_gpio(config: Section) -> None: def _kill_streamer(config: Section) -> None: logger = get_logger(0) - streamer = os.path.basename(config.streamer.cmd[0]) + if config.streamer.process_name_prefix: + prefix = config.streamer.process_name_prefix + ":" + logger.info("Trying to find and kill the streamer %r ...", prefix + " ") - logger.info("Trying to find and kill %r ...", streamer) - for proc in psutil.process_iter(): - attrs = proc.as_dict(attrs=["name"]) - if os.path.basename(attrs.get("name", "")) == streamer: - try: - proc.send_signal(signal.SIGTERM) - except Exception: - logger.exception("Can't send SIGTERM to streamer with pid=%d", proc.pid) - time.sleep(3) - if proc.is_running(): + for proc in psutil.process_iter(): + attrs = proc.as_dict(attrs=["name"]) + if attrs.get("name", "").startswith(prefix): try: - proc.send_signal(signal.SIGKILL) + proc.send_signal(signal.SIGTERM) except Exception: - logger.exception("Can't send SIGKILL to streamer with pid=%d", proc.pid) + logger.exception("Can't send SIGTERM to streamer with pid=%d", proc.pid) + time.sleep(3) + if proc.is_running(): + try: + proc.send_signal(signal.SIGKILL) + except Exception: + logger.exception("Can't send SIGKILL to streamer with pid=%d", proc.pid) def _remove_sockets(config: Section) -> None: -- cgit v1.2.3