当前位置:  技术问答>linux和unix

*******程序中如何判断进程是否在运行?******

    来源: 互联网  发布时间:2015-08-29

    本文导语:  如题 | 如果你知道这个进程的进程号,那么我就接分了。 用ps或者在/proc下去找都可是实现不过不是好办法。 你只要对你已知的这个进程发一个信号就可以了,如果返回错误就检查一下错误码...

如题

|
如果你知道这个进程的进程号,那么我就接分了。
用ps或者在/proc下去找都可是实现不过不是好办法。
你只要对你已知的这个进程发一个信号就可以了,如果返回错误就检查一下错误码是不是进程不存在,这个信号最好是0信号。
一般为了简单只要返回0我都认为这个进程存在,返回-1我就认为没有这个进程。切记最好用0号信号。

|
DIR *dir;
struct dirent *next;
pid_t* pidList=NULL;
int i=0;

dir = opendir("/proc");
if (!dir)
{
                      printf("Cannot open /proc");
             exit(1);
         }
while ((next = readdir(dir)) != NULL) {
FILE *f;
char filename[MAXNAME];
char buffer[BUF_SIZE];
char name[BUF_SIZE];

if (strcmp(next->d_name, "..") == 0)
continue;
if (!isdigit(*next->d_name))
continue;

sprintf(filename, "/proc/%s/f", next->d_name);
if (! (f = fopen(filename, "r")) ) {
continue;
}
if (fgets(buffer, BUF_SIZE-1, f) == NULL) {
fclose(f);
continue;
}
fclose(f);

...
如果为了简单,可以直接调用system();
eg:
system("find /proc |grep programname >file");
然后判断file是否为空
Good Luck!

|
一般的服务器程序启动都会在/var/run生成自己的一个pid文件,
用来标识是否程序已经启动

|
# pidof 

|
楼主问的是如何判断TASK_RUNNING 状态 还是 问这个进程是否存在?

|
那用ps命令就够了

    
 
 

您可能感兴趣的文章:

  • 如何解决程序自己调用自已后结束进程,并且父进程能真的退出不成为僵尸进程?
  • 在程序中启动一个进程(不是线程),如何知道该进程已运行结束
  • 通过c程序写代码怎么查看进程是不是存在了?怎么查看该进程占用的内存是多少?
  • 应用程序chinput开机自动启动, 但状态为Defunct的进程(“僵尸”进程), 如何删除?
  • 奇怪:程序一fork子进程时就停住了,似乎根本不能fork子进程啊?
  • shell进程退出,其子进程怎样才能不死,交给init进程管,谢谢,请指点下我写的程序
  • 如何在程序中执行另外一个程序,并且当前进程依然执行?
  • 为什么我在java程序里启动的一个程序在java程序关闭后,该程序的所有进程都关掉了
  • 这个socket程序的服务进程开始服务后,为什么总是两个进程?
  • 怎样编写一段程序,要求调用fork并在子进程中建立一个新的对话期。验证子进程变成了进程组长而且不再有控制终端。
  • 为什么这个程序没有输出?父进程中止后子进程也跟着中止吗?
  • 先 fork 子进程然后 execl 另一个可执行程序, 如何得到这个可执行程序结束的返回值?
  • linux shell关掉后java程序(进程名abc)仍能运行,用ps -ef|grep abc能查到进程名
  • 在程序中如何得到一个进程的状态?(不用ps命令),如何检查一个进程处于D状态(uninterruptible sleep)
  • 如何准确理解“程序”、“进程”、“线程”这三个概念
  • 请问在 linux 下如何使用 execl() 调用另一个多进程的程序?
  • 请问gdb怎么处理带有启动参数的程序和多进程程序?
  • 为什么程序异常后,这个程序监听的端口被转移到其它进程里
  • 关于sco下的多进程程序的问题?
  • help help busy!!! 知道进程的ID号,在程序里如何检查这个进程还在不在?
  • c语言判断某一年是否为闰年的各种实现程序代码
  • 请教,在linux下如何判断程序的内存泄露?
  • 请问linux中如何判断内核是否已经启动。(在内核中写程序)
  • 请问,如何用程序判断一个用ftp传输的文件已经完成?
  • 程序如何动态检测USB硬盘的插入及如何判断有几个分区
  • 菜鸟请教,应用程序如何判断驱动程序已经挂载成功
  • 请教:在程序中创建文件夹,应该用什么函数?怎么判断文件夹存不存在呢?
  • ScoOpenServer下的进程产生core,如何判断是哪个程序产生的?
  • 用程序如何判断主板上是双网卡还是单网卡呢?
  • 在linux下用程序如何判断出主板是什么芯片组?
  • 如何判断一个程序后台执行
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下指定运行时加载动态库路径及shell下执行程序默认路径
  • Linux下的程序是在内存中运行的吗?为什么在程序运行的时候可以删除程序文件?
  • Ubuntu程序开机自动启动设置(服务和自动运行配置文件)的几种方法
  • SecureCRT上运行一个JAVA程序,该程序类似一个在WINDOWS下一直运行的CMD窗口的东西,SecureCRT关掉后,JAVA还会继续运行吗?
  • windows下cmd命令提示符下让程序后台运行命令
  • telnet到主机去运行一个我编的程序,退出telnet时那个程序也不运行了,这是怎么回事?按程序逻辑它应该一直运行下去的。
  • python计算程序开始到程序结束的运行时间和程序运行的CPU时间
  • jsp程序运行一次后,再修改原jsp程序,为什么运行还是的还是原来的程序??
  • 我的linux程序 如何 在pc机器上运行。现在我用arm-linux-g++ 编译后的程序在我的嵌入设备上运行。
  • 在JB7中默认的情况下会为程序生成一个包,程序在JB7中可以正常运行,可是在JDK中却无法运行
  • 我用C在UNIX下写程序,生产文本,如何能让我的程序并行运行,好加快运行速度,举例说明。
  • 在程序中如何得到一个进程的状态?(不用ps命令),如何检查一个进程处于D状态(uninterruptible sleep) iis7站长之家
  • 在LIUNIX中,在运行程序中,运行什么命令可以出现类似DOS的界面...谢谢.
  • 怎样让linux启动后不运行桌面而是直接运行某个应用程序呢?
  • 程序在windows下用visual运行正常,如何才能在linux下运行??
  • 请问linux下查看某个程序的运行界面的程序是什么?
  • jbuilder下写的javabean与jsp程序正常运行,如何转到weblogic或其他的服务器上运行???
  • 运行程序后程序报错说操作不允许
  • ubuntu下用gcc编译的程序要怎样运行,为何运行不了?
  • 关闭putty(SSH程序)后如何让程序还在redhat上运行?
  • 怎么让一个程序在后台运行而不影响其他的程序的执行?
  • 重装服务器后IIS网站错误(应用程序中的服务器错误)
  • Linux 编程怎么样在程序开启一个程序,和关闭一个程序?
  • windows server2008上PowerBuilder程序系统错误解决方法
  • 请问从一个java程序中如何调用另一java程序,并控制可以其状态(最小化、最大化、结束程序),还有怎样知道那个被调用的程序结束。
  • 程序员的八种级别,你属于哪一级?
  • 我的程序是用c写的gtk+程序,有个函数的参数要传给它图片的文件名,但是图片和原程序不在同一目录下怎么办?怎么在程序里指定文件的路径
  • 在docker容器中通过apt-get安装新的程序
  • 为什么linux下的C++程序这么少见? 请问那里有linux下的C++程序?什么类型的程序都可以.
  • linux下通过crond实现自动执行程序
  • 我写了个linux下的网络程序,程序在多个电脑间通信,但是我没有多个电脑,怎么调试这样的程序啊?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3