[bitbake-devel] Triggering graceful bitbake shutdown

Tanu Kaskinen tanuk at iki.fi
Tue Mar 1 12:50:29 UTC 2016


Hi,

I wrote a small script that runs bitbake sequentially with multiple
MACHINE values. Sometimes I want to stop it with ctrl-c before it has
finished, but it didn't work properly out-of-the box when running
bitbake under the script (my script would not wait for bitbake to exit,
and bitbake threw some backtrace too). I then modified SIGINT handling
in my script so that it forwards the signal to bitbake and then waits
for bitbake to exit. The problem is that bitbake ignores SIGINT. The UI
handles python's KeyboardInterrupt exception, but that exception
doesn't get raised when bitbake runs under my script. I don't know what
triggers KeyboardInterrupt in normal conditions, since SIGINT doesn't
seem to be sufficient, does python perhaps monitor stdin to catch the
actual ctrl-c keypress?

Anyway, sending SIGTERM instead of SIGINT "works". However, the SIGTERM
handler shuts down bitbake immediately rather than waiting for the
current tasks to finish. Is that less safe than the normal ctrl-c
handling? If the immediate shutdown is equally safe, then I have no
problem, but if SIGTERM can cause state corruption so that resuming
later doesn't work reliably, then I'd like to have some way for
triggering graceful bitbake shutdown from my script. Any suggestions?

Or maybe there is already some way to run bitbake for multiple
MACHINEs, and I don't need to write any script myself?

-- 
Tanu



More information about the bitbake-devel mailing list