免费注册 查看新帖 |

Chinaunix

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

我有一个KSH,执行无效。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-03 11:17 |只看该作者 |倒序浏览
现象:写了一SH(见附录2),在日常情况下都可以使用。某一天,使用此SH(在KSH的环境下),再去杀相关进程,明明进程可以查到(见附录1),但用SH查出来PID却是空。请高手点拨。此种现象只会偶然发生,但一旦发生,就只能手工去KILL相关进程,用SH再也KILL不掉。得出的PID值一直是空。

附录1:
$ ps -fu trade
     UID   PID  PPID  C    STIME TTY       TIME COMMAND
   trade 28497 19390  2 11:13:14 pts/tf    0:00 ps -fu trade
   trade 28449     1  0 11:13:09 pts/tf    0:00 ./fund
   trade 19218 19217  0 10:47:17 pts/tf    0:00 -ksh
   trade 19390 19218  0 10:47:40 pts/tf    0:00 ksh

附录2:
PID=`ps -fu trade | awk '$8 ~ /'fund'/ {print $2}'`
if [ "$PID" = "" ]
then
        echo "process fund have exit"
else
        kill -9 $PID 2>/dev/null
        sleep 2
fi

论坛徽章:
0
2 [报告]
发表于 2009-06-03 11:18 |只看该作者
使用的是HP-UNIX,是否跟环境有关系?

论坛徽章:
0
3 [报告]
发表于 2009-06-03 11:33 |只看该作者
有人发表一下吗?顶一个。

论坛徽章:
0
4 [报告]
发表于 2009-06-03 11:42 |只看该作者

回复 #1 tideyan 的帖子

这个问题我好像碰到过,你把awk里的$8改成$9或者是$NF看看

论坛徽章:
0
5 [报告]
发表于 2009-06-03 11:53 |只看该作者
$9不行吧?PS -FU TRADE,只能查出8列来。$NF是什么意思?

论坛徽章:
0
6 [报告]
发表于 2009-06-03 12:00 |只看该作者
说明你的sh考虑不全,某些情况下没取到pid值

论坛徽章:
0
7 [报告]
发表于 2009-06-03 12:02 |只看该作者

回复 #5 tideyan 的帖子

我知道只有8列阿,我在一个脚本里就是这样的。只有8列,写$8死活不行,写$9就OK了
你试了么?

论坛徽章:
0
8 [报告]
发表于 2009-06-03 12:33 |只看该作者
我试了,使用$9会报错,但用$NF可以。

$ fund_stop.sh
process fund have exit
Check process fund status: alive error
$ ps -fu trade
     UID   PID  PPID  C    STIME TTY       TIME COMMAND
   trade 28449     1  0 11:13:09 pts/tf    0:10 ./fund
   trade 15894 19218  2 12:00:59 pts/tf    0:00 ps -fu trade
   trade 19218 19217  1 10:47:17 pts/tf    0:00 -ksh

论坛徽章:
0
9 [报告]
发表于 2009-06-03 12:36 |只看该作者
原帖由 ywlscpl 于 2009-6-3 12:00 发表
说明你的sh考虑不全,某些情况下没取到pid值


我就是想知道,还有什么情况是需要考虑进来的。而且只是偶发,不会经常出现。

论坛徽章:
0
10 [报告]
发表于 2009-06-03 13:51 |只看该作者
估计是ps -fu 时如果时间TIME那里超过一天或者很多天了,系统显示时间那里就多了一个空格出来了,你的$8就出错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP