|
Motion Master 6.0.0-alpha.86
Next-generation motion control software
|
What to start, and where. More...
#include <process.h>
Public Attributes | |
| std::filesystem::path | binary |
| std::uint16_t | port = kDefaultPort |
| std::filesystem::path | logFile |
| std::chrono::milliseconds | startTimeout {30000} |
What to start, and where.
| std::filesystem::path mm::auto_tuning::ProcessOptions::binary |
The executable. An empty path is a configuration error, not a default: the caller resolves the default, because only the composition root knows where Motion Master itself lives.
| std::filesystem::path mm::auto_tuning::ProcessOptions::logFile |
The child's own stdout and stderr are appended here. It prints a startup line and one line per request, which would otherwise land on Motion Master's console without passing through its logger — visible, but absent from both GET /api/log and the log file. An empty path lets the child inherit our streams instead.
| std::uint16_t mm::auto_tuning::ProcessOptions::port = kDefaultPort |
| std::chrono::milliseconds mm::auto_tuning::ProcessOptions::startTimeout {30000} |
How long start waits for the child to answer GET /api/health.
Measured on a Linux development machine, a healthy child answers 1.0 s after the spawn: the executable unpacks itself on every start, and that unpack is the whole cost. The default is far above that because a machine that never unpacked this executable is slower, and because the wait ends the moment the child answers or dies. So a generous limit costs nothing in either normal case, and only a child that is alive and silent waits it out.