免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: jack-ni
打印 上一主题 下一主题

怎样查找shell脚本中新进程的ID? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-11-18 18:17 |只看该作者
原帖由 jack-ni 于 2008-11-18 18:14 发表
没这么简单啊,shell脚本中产生的新进程并不是shell脚本的子进程



我靠! 那是啥?

论坛徽章:
0
12 [报告]
发表于 2008-11-18 18:33 |只看该作者
你看这个sleep.sh文件:
#!/bin/sh
sleep 3000 &
你执行这个脚本,再查看ps -ef 你会发现sleep 3000的父进程是1

论坛徽章:
0
13 [报告]
发表于 2008-11-18 21:02 |只看该作者
原帖由 jack-ni 于 2008-11-18 18:33 发表
你看这个sleep.sh文件:
#!/bin/sh
sleep 3000 &
你执行这个脚本,再查看ps -ef 你会发现sleep 3000的父进程是1


关注中......

论坛徽章:
0
14 [报告]
发表于 2008-11-18 21:07 |只看该作者
原帖由 jack-ni 于 2008-11-18 18:33 发表
你看这个sleep.sh文件:
#!/bin/sh
sleep 3000 &
你执行这个脚本,再查看ps -ef 你会发现sleep 3000的父进程是1



我靠! 如果是后台执行命令, 那就保存每个命令进程的pid到一个文件里 ...下次运行该脚本时根据文件中的纪录察看是否有进程还running

论坛徽章:
0
15 [报告]
发表于 2008-11-19 09:19 |只看该作者

回复 #14 nhw_cs 的帖子

怎样在执行命令的同时往一个文件中保存PID呢?

论坛徽章:
0
16 [报告]
发表于 2008-11-19 10:18 |只看该作者
顶一下,等待高手支招!

论坛徽章:
0
17 [报告]
发表于 2008-11-19 10:30 |只看该作者
pidof

论坛徽章:
0
18 [报告]
发表于 2008-11-19 10:47 |只看该作者
这个命令是能查,可是一个脚本里有很多行,还有while if等语句,怎么查阿!我goolge了半天,还是不会,请高手说详细点

论坛徽章:
0
19 [报告]
发表于 2008-11-19 10:51 |只看该作者
原帖由 jack-ni 于 2008-11-19 09:19 发表
怎样在执行命令的同时往一个文件中保存PID呢?




cmd1 &
echo $!> pid_file
cmd2 &
echo $! >>pid_file
...
...

论坛徽章:
0
20 [报告]
发表于 2008-11-19 11:07 |只看该作者
其实用我之前说的方法也是可以的, 将下面的命令行放到你的脚本的最后

subpids=`ps -ef|awk '$3=='"$$ "'{print $2}'`
echo $subpids > pid_file

此时放入pid_file中的pid不一定是全部命令的pid, 因为有些可能已经执行完毕了, 但显然这些pid下次也不需要检查了, 所以这并不和你的需求相冲突
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP