免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10006 | 回复: 10
打印 上一主题 下一主题

请问在linux下如何知道一个程序是否已经在运行? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-08-25 11:26 |只看该作者 |倒序浏览
请问在linux下如何知道一个程序是否已经在运行?
比如:有一个程序路径是 /root/run  我如何知道它现在是否已经运行如何得到它的进程号?

论坛徽章:
0
2 [报告]
发表于 2005-08-25 11:36 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

ps aux 看一下你执行的程序名对应的pid号

论坛徽章:
0
3 [报告]
发表于 2005-08-25 11:46 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

补充一下用c语言如何实现?刚才看文章说好像有个系统进程表,每个进程有一个task_struct 结构体,如何能根据程序的路径得到该进程的task_struct 结构体。

论坛徽章:
0
4 [报告]
发表于 2005-08-25 11:56 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

我用ps -ef到一个文件中,然后查看文件,对比进程来实现的

论坛徽章:
0
5 [报告]
发表于 2005-08-25 12:08 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

[quote]原帖由 "fannyth"]补充一下用c语言如何实现?刚才看文章说好像有个系统进程表,每个进程有一个task_struct 结构体,如何能根据程序的路径得到该进程的task_struct 结构体。[/quote 发表:

不可能,进程链表是根据PID来组织的,而不是“进程名”。这是因为PID和程序名不是一一对应的。
你用pidof bash看看,他会列出所有以“bash”程序名启动的进程。

论坛徽章:
0
6 [报告]
发表于 2005-08-25 13:22 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

[quote]原帖由 "gooderfeng"]我用ps -ef到一个文件中,然后查看文件,对比进程来实现的[/quote 发表:


由于我完成的是一个实时监视程序,所以我想如果频繁的去读文件是否会比较费时,所以我想还是能从系统中得到所有的进程信息然后再去比较。

论坛徽章:
0
7 [报告]
发表于 2005-08-25 16:01 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

顶!顶!顶!

论坛徽章:
0
8 [报告]
发表于 2005-08-25 18:55 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

刚看了/proc目录下的内容发现每个进程都有与之相关的文件名,但打开该文件后看不懂里面的内容。哪位高人解释一下。以下是我的进程号为2449的文件。

" Press ? for keyboard shortcuts
" Sorted by name (.bak,~,.o,.h,.info,.swp,.obj at end of list)
"= /proc/2449/
../
attr/
cwd/
fd/
root/
task/
auxv
cmdline
environ
exe
maps
mem
mounts
stat
statm
status
wchan
~

论坛徽章:
0
9 [报告]
发表于 2005-08-26 00:51 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

[quote]原帖由 "fannyth"]补充一下用c语言如何实现?刚才看文章说好像有个系统进程表,每个进程有一个task_struct 结构体,如何能根据程序的路径得到该进程的task_struct 结构体。[/quote 发表:


不同的系统对于这一块的实现是不相同的,出于不同的考虑,很多操作系统并未提供这一部分的API接口,因此想通过调用系统提供的API来实现对进程的处理不太现实。
最通用的解决办法是ps+管道。

论坛徽章:
0
10 [报告]
发表于 2005-08-26 01:01 |只看该作者

请问在linux下如何知道一个程序是否已经在运行?

其实我觉得你可以试一下下面的方法:
a程序运行的时候,让a创建一个proc文件。在这个proc文件中打印此程序的pid
b程序要判断a是否运行,只需要判断proc目录下是否有此文件,有的话读此文件,便可以得到pid了
比较恶心:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP