Closed denisri closed 2 years ago
Yes, it is because of the fork()
: detaching the process from its parent probably also forbids the parent to get a correct termination code from its child. If we remove the fork()
we get the correct status.
The fork is here only to really detach the process and allow to use Popen.wait
on client side. Otherwise there are warning messages in the tests. But this is a draft local implementation that uses a single subprocess to execute a process. My idea was to replace it by a Soma workflow with each nodes calling python -m capsul.run
. But I did not worked a lot on it.
capsul.run had been rewritten.
If we try:
Thus execution (obviously) does not succeed, but the return code of the command is still 0, so we don't catch execution failures. Is it because of the
fork()
incapsul.run
?