免费注册 查看新帖 |

Chinaunix

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

怎么样根据进程启动时间杀进程 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-06-18 11:41 |只看该作者 |倒序浏览
怎么样根据进程启动时间杀进程 比如我要杀掉 启动时间小于当前时间5个小时的perl进程

谢谢

论坛徽章:
0
2 [报告]
发表于 2009-06-18 11:47 |只看该作者
给个例子吧

论坛徽章:
0
3 [报告]
发表于 2009-06-18 11:56 |只看该作者
ps 命令就可以获得进程的运行时间的

论坛徽章:
0
4 [报告]
发表于 2009-06-18 12:47 |只看该作者

  1. ps xo etime,pid,cmd | awk '/perl/&&!/awk/{split($1,a,"[-:]");if((asort(a)==3&&a[1]<5)||asort(a)<3) system("kill -9 "$2)}'
复制代码

论坛徽章:
0
5 [报告]
发表于 2009-06-18 12:47 |只看该作者
运行时间容易获取,不过判断麻烦了点。不知道哪位高手有没有更好的办法?

论坛徽章:
0
6 [报告]
发表于 2009-06-19 01:10 |只看该作者

回复 #5 kwokcn 的帖子

ps xo etime,pid,cmd|awk -F"[ :]" '{if($4+0>=4)print $8}'

论坛徽章:
0
7 [报告]
发表于 2009-06-19 11:46 |只看该作者

回复 #6 haimming 的帖子

貌似"1-01:23:45"、"10:20:30"、"44:55"几种情况同时出现会有问题。:)

这个貌似和上面那个的复杂度也差不多……

  1. ps xo etime,pid,cmd | awk '/perl/&&!/awk/&&(length($1)==5||(length($1)==8&&substr($1,0,2)+0<5)){system("kill -9 "$2)}'
复制代码

论坛徽章:
0
8 [报告]
发表于 2009-06-19 21:13 |只看该作者

回复 #7 kwokcn 的帖子

第一个会出问题,没想过超一天的,
第二、三个没问题

  1. [rockfall@~]$ps xo etime,pid,cmd|awk -F"[ :]" '{if($4+0>=4)print $4,$8}'
  2. 04 2312
  3. ....
  4. 04 2950
  5. 04 2951
  6. 04 2952
  7. [rockfall@~]$ps xo etime,pid,cmd
  8.     ELAPSED   PID CMD
  9.    04:23:46  2312 fvwm
  10.    .....
  11.    04:04:26  2952 /usr/bin/perl -w /home/rockfall/.kde/share/apps/amarok/
  12.    02:15:02  3405 /bin/sh /usr/lib/firefox-3.0.1/run-mozilla.sh /usr/lib/
  13.    02:15:01  3425 /usr/lib/firefox-3.0.1/firefox
  14.       10:58  4074 bash
  15.       01:18  4120 emacs
  16.       00:01  4131 ps xo etime,pid,cmd
  17. [rockfall@~]$


复制代码

[ 本帖最后由 haimming 于 2009-6-20 00:57 编辑 ]

论坛徽章:
0
9 [报告]
发表于 2009-06-20 01:23 |只看该作者

回复 #8 haimming 的帖子

主要是用'[ :]'做分隔符会造成字段混乱。
"12:34"这种格式虽然$4为空,判断$4+0的值是可以的,不过PID的字段下标和"01:23:45"这种情况又是不同的,在获取PID时又会有问题,只能全部输出然后再重新获取。而且系统里一般都少不了存在运行一天以上时间的进程的。

论坛徽章:
0
10 [报告]
发表于 2009-06-20 11:28 |只看该作者
没有环境,只能说
1、因为时间格式是右对齐的,所以只有分秒的时间,如"10:23",$4是空值,对于这个题目来说,这时的pid值是没有用的;
2、补充一个或条件,判断$4是否符合"*-*"这样的格式,可以判断有没有超过24小时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP