On 7/19/25 13:30, Roman Bogorodskiy wrote:
The bhyveload(8) command does not have a native non-interactive
mode.
It means that in case of errors, e.g. invalid boot media, it
just drops into a loader prompt and waits for user input. This behaviour
makes it tricky for users to understand what's going on.
To address that, run it with the timeout(1) tool which sends SIGTERM
after a certain timeout, and then optionally sends SIGKILL if the
command keeps hanging.
These timeout values could be configured in the bhyve.conf. Setting
timeout to 0 mean that bhyveload(8) will be executed directly, without
timeout(1).
Signed-off-by: Roman Bogorodskiy <bogorodskiy(a)gmail.com>
---
src/bhyve/bhyve.conf | 9 +++++++
src/bhyve/bhyve_command.c | 25 ++++++++++++++++---
src/bhyve/bhyve_conf.c | 12 +++++++++
src/bhyve/bhyve_utils.h | 3 +++
src/bhyve/libvirtd_bhyve.aug | 4 ++-
src/bhyve/test_libvirtd_bhyve.aug.in | 2 ++
.../bhyvexml2argv-bhyveload-timeout.args | 10 ++++++++
.../bhyvexml2argv-bhyveload-timeout.ldargs | 7 ++++++
.../bhyvexml2argv-bhyveload-timeout.xml | 23 +++++++++++++++++
tests/bhyvexml2argvtest.c | 6 +++++
10 files changed, 96 insertions(+), 5 deletions(-)
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-timeout.args
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-timeout.ldargs
create mode 100644 tests/bhyvexml2argvdata/bhyvexml2argv-bhyveload-timeout.xml
Reviewed-by: Michal Privoznik <mprivozn(a)redhat.com>
and please post a follow up patch for NEWS.rst, this deserves a release
note.
Michal