Я пытаюсь раскошелиться () на новый процесс, чтобы я мог вызвать отдельное консольное приложение.
Разветвление происходит нормально, и я получаю новый идентификатор процесса, но процесс находится в спящем состоянии и вообще не становится активным даже при выходе из браузера.
Я просто взял пример проекта плагина и изменил метод echo, чтобы сделать ответвление.
Обычное консольное приложение отлично работает с кодом форка.
Есть ли что-то другое, что нужно учитывать для приложения плагина Firebreath?
Может кто-нибудь подсказать, в чем может быть проблема?
Платформа является archlinux 64 бит.
FB::variant PluginTestVZAPI::echo(const FB::variant& msg)
{
static int n(0);
fire_echo("So far, you clicked this many times: ", n++);
// fork
pid_t pid = fork();
if(pid == 0) // Child
{
m_host->htmlLog("child process");
}
else if (pid < 0) // Failed to fork
{
m_host->htmlLog("Failed to fork");
m_host->htmlLog(boost::lexical_cast<std::string>(pid));
}
else // Parent
{
m_host->htmlLog("Parent process");
}
m_host->htmlLog("Child Process PID = " + boost::lexical_cast<std::string>(pid));
// end fork
// return "foobar";
return msg;
}