linux下用程序读取某进程的状态信息(/proc/[pid]/stat)时,该进程结束了。怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下用程序读取某进程的状态信息(/proc/[pid]/stat)时,该进程结束了。怎么办相关的知识,希望对你有一定的参考价值。
参考技术A /proc/中文件都是实时的 即你的进程结束指父进程,那么 /proc/中就不会再有该记录追问其实问题是这样的,pid为10000的进程创建了一个子进程来监视自己的进程状态,但是子进程在读取成功/proc/10000/stat后,如果pid为10000的进程结束了,在取值的时候有时候会报错。有什么解决方法吗
追答简单来说 10000进程信息已经不存在于/proc/10000中,你就不该再去取其值,而且那是取不到的,当然报错。 挂掉的进程在/proc没有记录 就是这样
参考技术B 不是很明白你想做什么,你的意思进程的死亡是非正常的?追问我的意思是,比如正在查看pid为1000的进程的状态信息,由于linux下的状态信息都是以文件存在的,已经成功打开这个文件了,然后要去读取信息的时候,pid为1000的进程结束了,这样读它的/proc/1000/stat时就会报错。应该怎么解决这个问题。。。
追答pid为1000的进程的父进程是不是由你控制
追问不是,我的检测程序是pid为1000的子进程。当然pid为1000的程序可以由自己控制。
不是,我的检测程序是pid为1000的子进程。当然pid为1000的程序可以由自己控制。
不是,我的检测程序是pid为1000的子进程。当然pid为1000的程序可以由自己控制。
不是,我的检测程序是pid为1000的子进程。当然pid为1000的程序可以由自己控制。
追答兄弟,我忙的不得了,要不我给你搞一下,你要是能等,等几天我帮你写一段程序
本回答被提问者采纳Linux命令学习-ps命令
Linux中,ps命令的全称是process status,即进程状态的意思,主要作用是列出系统中当前正在运行的进程信息。
ps命令的功能很强大,参数也非常多,下面只举几个简单的实例。
- 显示所有进程信息
ps -A - 显示所有进程信息,包括其执行的命令
ps -ef - 显示指定用户下的所有进程信息
ps -u wintest - 查找指定进程:gogs
ps -ef | grep gogs
一般情况下,当我们想要杀死某进程时,便可以通过ps命令找到其进程号pid,然后通过 kill -9 命令将该进程强制杀死。
以上是关于linux下用程序读取某进程的状态信息(/proc/[pid]/stat)时,该进程结束了。怎么办的主要内容,如果未能解决你的问题,请参考以下文章
Linux下用GCC程序修改/etc/profile文件环境变量的问题
我在linux下用libevent编程,libevent安装到了/usr/lib目录下,但是写完程序总是报错说event.h找不到?