我需要在控制每个进程的情况下执行进程。我想创建一个存储线程或 pid 或任何必要的类。
我目前有一个程序,它使用 C 函数 execvp 执行一个外部应用程序,并从 shell 脚本加载环境。所以我目前的程序是阻塞的。但我需要能够让它自由运行,并且只有在我终止当前运行或启动新的外部应用程序时。
我目前的方法是创建一个使用 execve 函数的线程。但是,据我所知,线程将被阻塞。
可能在线程中的代码(然后带有变量):
char *argv[] = { "/bin/bash", "-c", "myApplication", 0 };
execve(argv[0], &argv[0], environment.data());
调用的应用程序可能在代码中不固定,它们的名称将由外部设置文件给出,包括参数。
现在我的实际问题是,有没有更好的方法来“管理”像 c++ 这样的外部应用程序?一些现成的解决方案(类,库)?如果不是,如果这是实际方式,我该如何终止线程。据说使用终止调用是不好的做法,这就是我经常阅读的内容。
我希望这对于论坛来说已经足够具体了,因为我不知道如何再具体了。如果您需要更多提示我想在这里创建什么,请随时在评论中提问。
更新:
到 DBus 和其他:
附加信息 我没有写所有我想启动的进程!所以它将用于启动 3rd 方应用程序,即使我有代码,也不想更改。