diff options
Diffstat (limited to 'scripts/kill-bb')
-rwxr-xr-x | scripts/kill-bb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/kill-bb b/scripts/kill-bb new file mode 100755 index 0000000000..0875b2c18c --- /dev/null +++ b/scripts/kill-bb @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +# +# Kill bitbake processes if the process' cwd == cwd +# +# Copyright (c) 2019 Wind River Systems, Inc. +# +# SPDX-License-Identifier: GPL-2.0-only +# + +import os +import sys +import re + +pids = [pid for pid in os.listdir('/proc') if pid.isdigit()] + +bb_pids = [] +cwd =os.getcwd() +for pid in pids: + cmdline_path = os.path.join('/proc', pid, 'cmdline') + pid_cwd = os.path.join('/proc', pid, 'cwd') + if os.path.exists(cmdline_path) and os.path.exists(pid_cwd): + pid_cwd = os.readlink(pid_cwd) + with open(cmdline_path, 'r') as f: + cmdline = f.read() + # Kill the bitbake process if its cwd == cwd + if re.match('python3.*/bitbake/bin/bitbake', cmdline) and pid_cwd == cwd: + bb_pids.append(pid) + +if not bb_pids: + print('No bitbake processes found in current working dir') + sys.exit(0) + +for pid in bb_pids: + print('Killing %s' % pid) + os.kill(int(pid), 9) |