From 3a17e9d4b9566c2dc22bc19b762960b20142985e Mon Sep 17 00:00:00 2001 From: Andy Haden Date: Mon, 3 Feb 2020 12:23:04 -0800 Subject: [PATCH] manager: verify daemon process cmdline old-commit-hash: 9b1f2d5c64320a9b6eca378d4b1876850504c525 --- selfdrive/manager.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/selfdrive/manager.py b/selfdrive/manager.py index 1fb3251457..4e6c52079c 100755 --- a/selfdrive/manager.py +++ b/selfdrive/manager.py @@ -250,14 +250,16 @@ def start_managed_process(name): def start_daemon_process(name): params = Params() proc, pid_param = daemon_processes[name] - pid = params.get(pid_param) + pid = params.get(pid_param, encoding='utf-8') if pid is not None: try: os.kill(int(pid), 0) - # process is running (kill is a poorly-named system call) - return - except OSError: + with open(f'/proc/{pid}/cmdline') as f: + if proc in f.read(): + # daemon is running + return + except (OSError, FileNotFoundError): # process is dead pass