Linux C函数Kill 10

关于LinuxC函数kill,查看帮助文档,执行成功则返回0,如果有错误则返回-1。可是执行了Kill后返回值为0,为什么用PS命令查看该进程还存在啊。请问这是怎么回事?... 关于Linux C函数kill,查看帮助文档,执行成功则返回0,如果有错误则返回-1。
可是执行了Kill后返回值为0,为什么用PS命令查看该进程还存在啊。请问这是怎么回事?
该进程是通过在fork出的子进程中调用execvp生成的。用ps命令查看,该进程带中括号,即[test]

pid_t pid = fork()
if(pid == 0) //子进程
{
execvp("test",arglist,NULL)
}
else if(pid>0)
{
// 父进程
}
else
{
//error
}
展开
 我来答
kaixingui2012
2012-10-17 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6343万
展开全部
你是程序中调用kill函数,还是在命令行调用kill命令?
int kill(pid_t pid, int sig); 函数有两个参数,一个是进程号,一个是信号
如果你输入的进程号是正确的,而进程还在,则信号有可能被该进程忽略了,不知道你发送的信号是几号? 只有SIGKILL SIGSTOP不能被忽略,其它都可以忽略或捕捉。
追问
谢谢,我是调用Kill函数,发送的信号是SIGTERM。
匿名用户
2012-11-01
展开全部
僵尸进程还存在。实际上进程还没有杀死,或者用ps查看时看到的是假的进程,也就是说系统没有反应过来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
创作者XXGDQ4kMbU
2012-10-17 · TA获得超过1281个赞
知道小有建树答主
回答量:371
采纳率:66%
帮助的人:428万
展开全部
kill 这个命令指示发送一个SIGNAL 给进程.
发送成功就返回 0 .但是程序接收到信号后会怎么处理 kill 是不管的.
就是说无论kill 是不是返回 0. 进程都有可能继续运行.
追问
谢谢,那为什么用kill命令,kill -9 pid,可以终止该进程,而函数调用不行呢。怎么查出进程没有被终止的真正原因呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2338487
2020-04-21
知道答主
回答量:18
采纳率:0%
帮助的人:4.9万
展开全部
清除进程id 要用wait
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式