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