[英]How to end a process in c++?
好的,所以我想编写一个可以结束当前正在运行的特定进程的c ++程序。 我已经搜索了互联网,但我遇到的所有解决方案都对我没有意义。 有没有简单的方法来结束流程?
在POSIX上,您调用kill(3)
将SIGTERM
发送到该进程。 在Windows上,您调用TerminateProcess()
。
假设您使用的是* nix平台,并且具有进程ID(即,您使用其他方法来推断进程的pid
生成了该进程),那么使用kill(2)
应该可以:
#include <sys/types.h>
#include <signal.h>
void main() {
/* ... */
pid_t pid = ???;
kill(pid, SIGTERM);
}
不过,它仅在某些条件下才能工作:
为了使进程具有发送信号的权限,它必须具有特权(在Linux下:具有CAP_KILL功能),或者发送进程的真实或有效用户ID必须等于目标的真实或已保存的设置用户ID。处理。 对于SIGCONT,发送和接收进程属于同一会话就足够了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.