免费注册 查看新帖 |

Chinaunix

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

ps -ef执行时检查不到进程的存在 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-07 15:42 |只看该作者 |倒序浏览
/data/mm.sh是一个nohup启动的进程,在后台运行。
使用ps -ef|grep /data/mm.sh有时能查到该进程的存在,有时却查不到,这是为什么?

以前的概念里从来没有查不到的概念,这真是大问题啊。因为如果查不到,另有一个脚本会自动重启。导致处理错误。
谢谢。

论坛徽章:
0
2 [报告]
发表于 2007-01-07 15:54 |只看该作者
以此种方法确定系统中是否有该进程是不准确的
请看看下面这个帖子。

http://bbs.chinaunix.net/viewthread.php?tid=840050

论坛徽章:
0
3 [报告]
发表于 2007-01-07 16:30 |只看该作者
学习中

论坛徽章:
0
4 [报告]
发表于 2007-01-07 16:33 |只看该作者
如果不是高并发情况下,用linux系统的pidof命令来判断可能就足够了,下面是man手册的注意事项
  1.        When pidof is invoked with a full pathname to  the  program  it  should
  2.        find  the  pid of, it is reasonably safe. Otherwise it is possible that
  3.        it returns pids of running programs that happen to have the  same  name
  4.        as the program you’re after but are actually other programs.
复制代码

论坛徽章:
0
5 [报告]
发表于 2007-01-07 16:42 |只看该作者
原帖由 一梦如是 于 2007-1-7 16:33 发表
如果不是高并发情况下,用linux系统的pidof命令来判断可能就足够了,下面是man手册的注意事项
[code]       When pidof is invoked with a full pathname to  the  program  it  should
       find  the  pid  ...



...pidof 貌似也有问题...对脚本有些问题...那天我们遇到了, 用 -x 也不行, 因为不是大问题, 就没有在意了...>_<

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-01-07 16:44 |只看该作者
try:
lsof|grep mm.sh

论坛徽章:
0
7 [报告]
发表于 2007-01-07 16:49 |只看该作者
原帖由 Edengundam 于 2007-1-7 16:42 发表



...pidof 貌似也有问题...对脚本有些问题...那天我们遇到了, 用 -x 也不行, 因为不是大问题, 就没有在意了...>_<

具体是啥问题呢?
对您可能不是大问题,对其他使用它写维护脚本的人可能就是大问题了,讲一讲给我们增长下见识~

论坛徽章:
0
8 [报告]
发表于 2007-01-07 16:56 |只看该作者
原帖由 一梦如是 于 2007-1-7 16:49 发表

具体是啥问题呢?
对您可能不是大问题,对其他使用它写维护脚本的人可能就是大问题了,讲一讲给我们增长下见识~



......那人今天不上班, 偶也不知道怎么搞的脚本, 大概是 test1.sh 调用 test.sh, test.sh 调用 java 程序.
要做成服务, 服务的脚本用 pidof 的参数貌似不接受有空格 ...当时问题不大, 就没在意了...晚点我去把脚本搞到试试...>_<

论坛徽章:
0
9 [报告]
发表于 2007-01-07 17:15 |只看该作者
pidof和lsof在我用的aix的ksh不支持。
这个是linux的?还是其它系统的

论坛徽章:
0
10 [报告]
发表于 2007-01-07 17:18 |只看该作者
如果是
  1. bash a.sh
复制代码

那么就要
  1. pidof bash
复制代码

如果是
  1. perl a.pl
复制代码

那么就要
  1. pidof perl
复制代码

但就无法准确定位了
  1. pidof -x "bash a.sh"
  2. pidof -x "perl a.pl"
复制代码

这样的用法是无效的,可能Eden说的是这种情况

想要用pidof那么调用时就得符合pidof的需要,这恐怕也就是很多人写shell脚本时,都使用完整路径调用程序的一方面原因吧。
  1. /bin/sleep 60
  2. /bin/echo
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP