每天第一次 ps -ef 的奇怪现象

yuxinglian 2011-03-18 03:14:52
我在一个脚本中有如下代码

count=`ps -ef | grep $(basename $0) | grep -v grep | wc -l`;

我想在执行这个脚本的时候,判断是否有二个同样的程序在运行,如果count大于1则退出。

奇怪的事就是只要在一天中第一次运行这个脚本的时候,这个count值一定是2,之后怎么运行都是1,然后过了晚上0点之后第一次运行的时候又是这样的情况,不解!!!!!!!!!!!

请问各位有经验大虾们赐教!
...全文
133 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxinglian 2011-03-18
  • 打赏
  • 举报
回复
麻烦各位不要认为这是个弱智的问题, 我已经是经过好几次的确认了, 我每次都是手动去执行脚本的, 没有什么定时任务, 要是那么简单的我会来这里问吗
freetstar 2011-03-18
  • 打赏
  • 举报
回复
以前你这个进程已经存在了,然后你又启动一个进程自己去检查自己,



结果
freetstar 2011-03-18
  • 打赏
  • 举报
回复
lz,你这个就是检测你当前本身这个脚本的教程在不在,比如说你这个脚本第一次运行时,肯定count是1,然后你再运行这个脚本的时候,count不就变成2了?自己又给自己加了一个,退出去以后count又变成1了,
yuxinglian 2011-03-18
  • 打赏
  • 举报
回复
你也是高手了吧, $0就是脚本名啊 test.ksh 这样

我只要是一天中第一次运行 ,不管是在什么时辰都会ps出二个进程,没有特定时间

我明天把日志导出来再看看
steptodream 2011-03-18
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yuxinglian 的回复:]

基本上看不出来什么,除了pid不一样的都一样

2 1 xxx
3 2 xxx
[/Quote]
那就加个分割线 不就能区分了 再说如果是你程序有问题 每当那个时候就是2个进程呢

echo "--------------------------------" >> log.txt
ps -ef | grep $(basename $0) | grep -v grep >> log.txt
count=`ps -ef | grep $(basename $0) | grep -v grep | wc -l`;

freetstar 2011-03-18
  • 打赏
  • 举报
回复
把脚本发上来看看,你的$0是啥
yuxinglian 2011-03-18
  • 打赏
  • 举报
回复
基本上看不出来什么,除了pid不一样的都一样

2 1 xxx
3 2 xxx
steptodream 2011-03-18
  • 打赏
  • 举报
回复
找到原因最简单的方法就是 在这句的前面加一句
ps -ef | grep $(basename $0) | grep -v grep >> log.txt

然后第二天查下日志 就明了了

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧