我正在实现看门狗(应用程序启动了看门狗),但无法弄清楚如何使用进程的路径重新启动进程。 编辑:如何通过pid获取进程的路径并重新启动它。 任何帮助或想法将不胜感激。
答案 0 :(得分:0)
您可以通过使用C中的系统库直接运行exe。 系统库执行可以在命令提示符或Bash中执行的任何命令。因此,请使用批处理命令将其杀死,然后重新运行该程序。要重新运行,您将需要使用完整路径。
Windows
#include <stdlib.h>
int main(){
system("taskkill /IM executablename");
int status = system("executablename");
}
Linux
int main(){
system("killall -v executablename");
int status = system("fullexecutablenameandpath");
}
答案 1 :(得分:0)
这似乎是XY问题。请勿先启动应用程序,再启动看门狗,然后再启动看门狗。
编写一个看门狗(或简单地使用已存在的一种形式的systemd)启动,监视和重新启动该应用程序。然后,将应用程序的路径和争论简单地作为参数传递给看门狗。
这样,整个事情就会真正起作用。