如何通过pid获取进程的路径并重新启动-C

时间:2018-12-10 08:42:38

标签: c ubuntu watchdog

我正在实现看门狗(应用程序启动了看门狗),但无法弄清楚如何使用进程的路径重新启动进程。 编辑:如何通过pid获取进程的路径并重新启动它。 任何帮助或想法将不胜感激。

2 个答案:

答案 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)启动,监视和重新启动该应用程序。然后,将应用程序的路径和争论简单地作为参数传递给看门狗。

这样,整个事情就会真正起作用。