diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-29 11:08:50 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-29 17:06:23 +0000 |
commit | 539726a3b2202249a3f148d99e08909cb61902a5 (patch) | |
tree | cbc4c59ce3eaf7e74c4880da04178088ce17d07f /bin/bitbake-worker | |
parent | fd7f1a94d196b8a3c445e313d9e699b352b1da97 (diff) | |
download | bitbake-contrib-539726a3b2202249a3f148d99e08909cb61902a5.tar.gz |
bitbake: Set process names to be meaninful
This means that when you view the process tree, the processes
have meaningful names, aiding debugging:
$ pstree -p 30021
bash(30021)───KnottyUI(115579)───Cooker(115590)─┬─PRServ(115592)───{PRServ Handler}(115593)
├─Worker(115630)───bash:sleep(115631)───run.do_sleep.11(115633)───sleep(115634)
└─{ProcessEQueue}(115591)
$ pstree -p 30021
bash(30021)───KnottyUI(117319)───Cooker(117330)─┬─Cooker(117335)
├─PRServ(117332)───{PRServ Handler}(117333)
├─Parser-1:2(117336)
└─{ProcessEQueue}(117331)
Applies to parse threads, PR Server, cooker, the workers and execution
threads, working within the 16 character limit as best we can.
Needed to tweak the bitbake-worker magic values to tell the
workers apart.
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bin/bitbake-worker')
-rwxr-xr-x | bin/bitbake-worker | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/bin/bitbake-worker b/bin/bitbake-worker index 3390f637e..f053382f5 100755 --- a/bin/bitbake-worker +++ b/bin/bitbake-worker @@ -18,7 +18,7 @@ if len(sys.argv) != 2 or not sys.argv[1].startswith("decafbad"): sys.exit(1) profiling = False -if sys.argv[1] == "decafbadbad": +if sys.argv[1].startswith("decafbadbad"): profiling = True try: import cProfile as profile @@ -202,6 +202,8 @@ def fork_off_task(cfg, data, workerdata, fn, task, taskname, appends, taskdepdat the_data = bb.cache.Cache.loadDataFull(fn, appends, data) the_data.setVar('BB_TASKHASH', workerdata["runq_hash"][task]) + bb.utils.set_process_name("%s:%s" % (the_data.getVar("PN", True), taskname.replace("do_", ""))) + # exported_vars() returns a generator which *cannot* be passed to os.environ.update() # successfully. We also need to unset anything from the environment which shouldn't be there exports = bb.data.exported_vars(the_data) @@ -296,6 +298,10 @@ class BitbakeWorker(object): signal.signal(signal.SIGTERM, self.sigterm_exception) # Let SIGHUP exit as SIGTERM signal.signal(signal.SIGHUP, self.sigterm_exception) + if "beef" in sys.argv[1]: + bb.utils.set_process_name("Worker (Fakeroot)") + else: + bb.utils.set_process_name("Worker") def sigterm_exception(self, signum, stackframe): if signum == signal.SIGTERM: |