c++中的进程管理

Process management in C++

本文关键字:进程管理 c++      更新时间:2023-10-16

我正在用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]检查进程是否存在