Closed robxu9 closed 1 year ago
The krun_set_exec
method has, indeed, many shortcomings coming from the fact that it relies on the kernel command line to pass the arguments to init.c. Many of those shortcoming can't be fixed without a significant amount of hackery, and since nowadays the preferred way of passing arguments is through /.krun_config.json
, I don't think it's worth investing time it was it will likely be a suboptimal solution.
Given a test program,
/test-args
, with the following content:When I use
chroot_vm.c
to call/test-args
with the arguments1 2 3 4 5 6
, I get back1 2 3 4 5 6
respectively.However, when I use
chroot_vm.c
to call/test-args
with the arguments-- 1 2 3 4 5 6
, I get back no arguments.It seems that libkrun is stripping out arguments entirely if they contain
--
. I ran into this when I was trying to get tini to cooperate and realized that it wasn't seeing any parameters if the args contained a--
.Note that this doesn't happen if I don't use
krun_set_exec
at all and instead pivot to using/.krun_config.json
to set my command, which works fine.