免费注册 查看新帖 |

Chinaunix

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

关于UNIX下进程控制问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-04-05 11:36 |只看该作者 |正序浏览
各位高手:
    我在unix下用C编程。
    我知道进程的ID,但是如何通过程序而得到此进程的状态和运行其程序的名字呢?

    请帮帮忙啊!

论坛徽章:
0
14 [报告]
发表于 2005-04-05 15:23 |只看该作者

关于UNIX下进程控制问题!

原帖由 "bleem1998" 发表:
是什么数据库
难道连这点数据完整性都保证不了吗?
我知道Oracle和Postgres都有序列的概念
其他不晓得
序列就完全可以帮助你达到目的
just like UNIX's semaphore
根本不需要你这么拼命控制process


完全同意。

论坛徽章:
0
13 [报告]
发表于 2005-04-05 14:18 |只看该作者

关于UNIX下进程控制问题!

看来我要好好在学习一下基础知识操作系统。
类似什么信号量之类的东西我都不清楚。真是郁闷!

论坛徽章:
0
12 [报告]
发表于 2005-04-05 13:55 |只看该作者

关于UNIX下进程控制问题!

是什么数据库
难道连这点数据完整性都保证不了吗?
我知道Oracle和Postgres都有序列的概念
其他不晓得
序列就完全可以帮助你达到目的
just like UNIX's semaphore
根本不需要你这么拼命控制process

论坛徽章:
0
11 [报告]
发表于 2005-04-05 13:54 |只看该作者

关于UNIX下进程控制问题!

if ( -1 == kill(pid,0) && errno == ESRCH) {
  ......
}

论坛徽章:
0
10 [报告]
发表于 2005-04-05 13:50 |只看该作者

关于UNIX下进程控制问题!

你既然知道了PID,为什么还要知道程序名?刚才的kill函数可以做到这一点

论坛徽章:
0
9 [报告]
发表于 2005-04-05 13:48 |只看该作者

关于UNIX下进程控制问题!

>;>;因为这两个程序都是插数据到数据库的。我只想避免发生冲突(插入一样的内容)。同时也需要他们的并行!

这样可以采用信号量或者互斥锁来进行同步(注意是“并发”而不是“并行”,concurrent和parallel是不同的)吧,或者数据库的存储过程/事务等(数据库俺除了SQL啥都不懂,这是猜测)。

论坛徽章:
0
8 [报告]
发表于 2005-04-05 13:29 |只看该作者

关于UNIX下进程控制问题!

albcamus :非常感谢你。
     我们是在运行2个同样的程序时候,我想用其中一个程序判断另一个程序是否是那种僵尸进程,或者是通过ctrl+Z给stopped掉了。当然这两个程序分别是通过不同的客户端执行的。
   因为这两个程序都是插数据到数据库的。我只想避免发生冲突(插入一样的内容)。同时也需要他们的并行!
   
   请高手请教!

论坛徽章:
0
7 [报告]
发表于 2005-04-05 13:08 |只看该作者

关于UNIX下进程控制问题!

比如说,它的pid为1212,那就读/proc/1212/status文件,

不过偶很怀疑,因为进程状态的改变是非常迅速的,几乎每个时钟周期都有可能,你现在读了,可能下一个10ms之后就变了。

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

关于UNIX下进程控制问题!

可能是我写的不清晰,具体是这样的:
我在程序中,只是知道另一个程序的PID。
所以,我想通过这个PID而得到另一个程序的名字和其进程的状态。
所以请求帮忙,不知道如何用C在UNIX下实现!
谢谢各位高手!
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP