免费注册 查看新帖 |

Chinaunix

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

获取进程id等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-13 17:45 |只看该作者 |倒序浏览
请问如何用shell脚本实现获取指定进程id,如何判断某个进程是否存在?如何用shell脚本测试服务器是否连通?

论坛徽章:
0
2 [报告]
发表于 2009-07-13 18:05 |只看该作者
1、ps + grep,不过存在误判的风险;ps + find /proc/pid/... + readlink + grep可以规避这样的风险,确保正确。
2、ping ip -c 3 >/dev/null 2>&1 && echo yes || echo no

论坛徽章:
0
3 [报告]
发表于 2009-07-14 09:36 |只看该作者
大侠第一个问题好像说的不是很明白啊?误判的危险在哪?下个命令又是怎样避免的这种危险的?

论坛徽章:
0
4 [报告]
发表于 2009-07-14 09:40 |只看该作者
1、pgrep dialog
2、pgrep dialog >/dev/null && echo yes
3、ping -c 1 192.168.0.1> /dev/null && echo $?      输出为0表示可以连通

[ 本帖最后由 00306 于 2009-7-14 09:44 编辑 ]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
5 [报告]
发表于 2009-07-14 09:44 |只看该作者

回复 #3 wolfme 的帖子

kwokcn说的可能是因为管道引起的问题: http://bbs.chinaunix.net/viewthread.php?tid=733138

或者可以尝试用pgrep

论坛徽章:
0
6 [报告]
发表于 2009-07-14 12:16 |只看该作者
不是管道问题,是误匹配。

  1. [root]# 1.sh &
  2. [1] 20754
  3. [root]# 11.sh &
  4. [2] 20756
  5. [root]# 111.sh&
  6. [3] 20758
  7. [root]# pgrep 1.sh
  8. 20754
  9. 20756
  10. 20758
复制代码


这是其中一种造成出错的情况,可以通过匹配边界进行处理,但另一种情况:"在a/目录下执行./1.sh,再到b/目录下执行./1.sh",这种通过ps或pgrep很难作出处理。

正确的方式应该是通过readlink获取/proc/pid/cmd(可执行程序)或/proc/pid/fd/255(脚本)的链接文件,与试图检测的文件路径进行匹配,以确定该进程是否是你要检测的程序启动的。

论坛徽章:
0
7 [报告]
发表于 2009-07-14 12:26 |只看该作者
原帖由 kwokcn 于 2009-7-14 12:16 发表
不是管道问题,是误匹配。

[root]# 1.sh &
[1] 20754
[root]# 11.sh &
[2] 20756
[root]# 111.sh&
[3] 20758
[root]# pgrep 1.sh
20754
20756
20758


这是其中一种造成出错的情况,可以通过匹配 ...


ps aux|awk '/1\.sh/{print $2}'
应该就不会吧

论坛徽章:
0
8 [报告]
发表于 2009-07-14 12:39 |只看该作者

回复 #7 00306 的帖子

关键不是用grep还是用awk,关键是要加边界判断。但是同名不同路径,只靠边界就不行。

  1. [root]# 1.sh &         
  2. [1] 20810
  3. [root]# 11.sh &         
  4. [2] 20812
  5. [root]# 111.sh&         
  6. [3] 20814
  7. [root]# ps aux|awk '/1\.sh/{print $2}'
  8. 20810
  9. 20812
  10. 20814
  11. [root]# pgrep "\<1.sh\>"
  12. 20810
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP