免费注册 查看新帖 |

Chinaunix

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

[系统管理] 帮忙看一下这种写法对不对(我想根据特有的字符串获取某个进程的PID) [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-07-10 16:56 |只看该作者
我对你的感激敬仰之情犹如滔滔江水绵绵不绝!回复 9# reyleon


   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
12 [报告]
发表于 2014-07-10 17:04 |只看该作者
回复 11# jerrymy


    不谢,请叫我雷锋  

论坛徽章:
0
13 [报告]
发表于 2014-07-10 21:41 |只看该作者
为了防止ps抓字符串时抓到自身,可以这样写:
getprocess=$(ps -ef|awk '/[s]erver01/{print $2}')

论坛徽章:
0
14 [报告]
发表于 2014-07-11 09:49 |只看该作者
貌似问题还没完全解决,捕获到的进程没原来多,但是还是捕获到了2个进程。

  1. bash -x weblogic_managed
  2. + ServerName1=server01
  3. + /usr/bin/curl -m 5 -G http://IP
  4. + echo 'Getting pid of weblogic server01...'
  5. Getting pid of weblogic server01...
  6. ++ ps -ef
  7. ++ grep server01
  8. ++ grep -v grep
  9. ++ awk '{print $2}'
  10. + getprocess='28746
  11. 28801'
  12. + [[ 28746
  13. 28801 -ne 0 ]]
  14. weblogic_managed: line 13: [[: 28746
  15. 28801: syntax error in expression (error token is "28801")
  16. ++ date '+%Y-%m-%d %H:%M:%S'
  17. + echo 'DATE:2014-07-10 21:44:41 The weblogic server01 is not running'
  18. DATE:2014-07-10 21:44:41 The weblogic server01 is not running
  19. ++ date '+%Y-%m-%d %H:%M:%S'
  20. + echo 'DATE:2014-07-10 21:44:41 Start Server ING'
  21. DATE:2014-07-10 21:44:41 Start Server ING
  22. + source /opt/user_projects/domains/gis_domain/start_server01.sh
  23. ++ USER_MEM_ARGS='-Xms1024m -Xmx2048m -XX:MaxPermSize=256m'
  24. ++ export USER_MEM_ARGS
  25. ++ nohup ./bin/startManagedWebLogic.sh server01 http://IP
  26. [b]回复 [url=forum.php?mod=redirect&goto=findpost&pid=&ptid=4145437]12#[/url] [color=Olive]reyleon[/color] [/b]
复制代码

论坛徽章:
0
15 [报告]
发表于 2014-07-11 09:59 |只看该作者
假如有多个同一个应用的进程在跑,对进程数量计数并一一结束,如何写呢?回复 13# 用户名注册后不能更改


   

论坛徽章:
0
16 [报告]
发表于 2014-07-11 10:00 |只看该作者
本帖最后由 jerrymy 于 2014-07-11 10:01 编辑

假如有多个同一个应用的进程在跑,对进程数量计数并一一结束,如何写呢?我想在这个脚本里加上这样的功能。另外请看14楼回复 12# reyleon


   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
17 [报告]
发表于 2014-07-11 10:07 |只看该作者
回复 16# jerrymy


    主要是你根据关键字符串过滤不严谨呐,这其实是一个很小的问题,应该很容易找出问题呀

要不你再加一层过滤呗


ps -ef |grep XXXOOO | grep -v grep | awk '{print $2}' |xargs kill -9

这个就是不管你找出多少,通通都杀掉.

关键就在于你 "grep XXXOOO" 这里到底都找出了什么玩意儿...

论坛徽章:
0
18 [报告]
发表于 2014-07-11 10:18 |只看该作者
我也很奇怪,单独ps -ef|grep pattern只输出一个进程,在脚本里莫名其妙的多了一个。

回复 17# reyleon


   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
19 [报告]
发表于 2014-07-11 10:23 |只看该作者
回复 18# jerrymy


    那你调试下呀,看看到底多出是哪一个..

echo "$(ps -ef | $ServerName1)"
getprocess=`ps -ef|grep $ServerName1|grep -v grep|awk '{print $2}'`
...

论坛徽章:
0
20 [报告]
发表于 2014-07-11 10:57 |只看该作者
我发现的确有多个符合匹配模式的进程,

我现在想保持脚本结构不变,加入统计到符合模式的进程数,然后再一一结束的功能。

回复 19# reyleon


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP