C++中的进程管理

Process management in C++

我正在用 C 开发我的应用程序,当应用程序启动时它需要终止从系统启动运行的 shell 脚本。

这是我从 C++ 中杀死 shell 脚本的函数:

void Kill_Script_sh(void)
{
    FILE *fp;
    char buffer[30];
    char pid_number[5];
    int pid;
    int fd;
    std::stringstream command;

    command.str("");
    fp = popen("ps aux | grep tick.sh", "r");

    fgets(buffer, 30, fp);

    pclose(fp);

    pid_number[0] = buffer[11];
    pid_number[1] = buffer[12];
    pid_number[2] = buffer[13];
    pid_number[3] = buffer[14];
    pid_number[4] = buffer[15];


    pid = atoi(pid_number);

    printf("%d \n", pid);

    command << "sudo kill " << pid;

    system(command.str().c_str());
}

在我终止进程后,我需要检查它是否仍然存在。这是做我需要做的事情的正确方法吗?任何想法都是有帮助的。谢谢

杀死它(或一般情况下)后,您可以使用 kill -0 [pid].

检查进程是否存在