免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2930 | 回复: 8

[文本处理] 指定时间段让特定进程sleep [复制链接]

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2013-10-31 10:10 |显示全部楼层
     我现在有一个需求,在指定的时间内,让给定的进程成sleep状态;
   现在知道获得进程号的命令 ps -ef|grep  aaa|awk '{print $2}'
    以及sleep

    直接用shell是否可以实现,还是需要用C实现

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-10-31 10:40 |显示全部楼层
本帖最后由 关阴月飞 于 2013-10-31 10:40 编辑

回复 1# 初识orcl


可以试试向进程发送信号:
  1. 18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用
  2. 一个handler来让程序在由stopped状态变为继续执行时完成特定的
  3. 工作. 例如, 重新显示提示符
  4. 19) SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别
复制代码

  1. kill -19 uruid
  2. sleep 10
  3. kill -18 uruid  
复制代码

论坛徽章:
15
2015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-15 17:29:44午马
日期:2015-01-06 17:06:51子鼠
日期:2014-11-24 10:11:13寅虎
日期:2014-08-18 07:10:55酉鸡
日期:2014-04-02 12:24:51双子座
日期:2014-04-02 12:19:44天秤座
日期:2014-03-17 11:43:36亥猪
日期:2014-03-13 08:13:51未羊
日期:2014-03-11 12:42:03白羊座
日期:2013-11-20 10:15:18CU大牛徽章
日期:2013-04-17 11:48:45
发表于 2013-10-31 10:23 |显示全部楼层
本帖最后由 rdcwayx 于 2013-10-31 12:23 编辑

怎么样的进程算是sleep 状态?怎么个sleep 状态?
给个思路, 如果进程是个脚本,加个自动检测,判断:如果有/tmp/abc.lck 文件,就进入sleep, 没有就继续

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2013-10-31 10:57 |显示全部楼层
本帖最后由 初识orcl 于 2013-10-31 11:03 编辑

回复 2# rdcwayx

    大大,您好,你的思路是不是我以下这中描述呀,我主要困难就是 知道PID 但是不知道怎么制定这个PID,让其sleep,linux小白,大大见谅,描述问题不是很透彻。{:2_172:}

    其实是一个数据库导出命令,exp
        例如我查看 ps -ef|grep exp

              oracle   12644 12604  0 09:04 pts/1    00:00:00 sh exp.sh
              oracle   12645 12644  6 09:04 pts/1    00:00:01 exp               file=abc.dmp log=abc.log rows=n compress=y
              oracle   12656 12604  0 09:05 pts/1    00:00:00 grep exp
      
       我现在想在10点到12点将
          oracle   12645 12644  6 09:04 pts/1    00:00:01 exp               file=abc.dmp log=abc.log rows=n compress=y

       这个进程sleep。
     想法,检测系统时间,10点时sleep 2h。
  

          通过ps -ef|grep exp|grep -v grep|wak '{print $2}'

    可以得到 exp.sh 和exp命令 执行的进程id

             我想通过进程id来让这2个命令sleep 2小时。
                     
   

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2013-10-31 10:59 |显示全部楼层
本帖最后由 初识orcl 于 2013-10-31 11:00 编辑

回复 3# 关阴月飞


    大前锋你好。看一下我4楼的回复,这下需求描述的比较到位{:2_170:}

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-10-31 11:11 |显示全部楼层
回复 5# 初识orcl

大概是这么个思路:你可以在每天的10点制一条计划任务:

  1. #暂停指定的进程
  2. pid=`ps -ef|grep exp|grep -v grep|awk '{print $2}' `
  3. kill -19 "$pid"

  4. #等待2小时
  5. sleep 7200

  6. #运行被暂停的进程
  7. kill -18 "$pid"
复制代码

论坛徽章:
1
IT运维版块每日发帖之星
日期:2016-02-06 06:20:00
发表于 2013-10-31 11:24 |显示全部楼层
回复 6# 关阴月飞


    这就是我想要的大前锋,原来只知道kill -9.原来kill功能这么强大

论坛徽章:
39
辰龙
日期:2013-08-21 15:45:192015亚冠之广州富力
日期:2015-05-12 16:34:52亥猪
日期:2015-03-03 17:22:00申猴
日期:2015-03-03 17:21:37未羊
日期:2014-10-10 13:45:41戌狗
日期:2014-06-17 09:53:29巨蟹座
日期:2014-06-12 23:17:17双鱼座
日期:2014-06-10 12:42:44寅虎
日期:2014-06-09 12:52:172015亚冠之卡尔希纳萨夫
日期:2015-05-24 15:24:35黄金圣斗士
日期:2015-12-02 17:25:0815-16赛季CBA联赛之吉林
日期:2017-06-24 16:43:52
发表于 2013-10-31 11:31 |显示全部楼层
回复 7# 初识orcl


我不是大前锋啊。。。。。。。啊。。。。。啊。。。。。。   

论坛徽章:
59
19周年集字徽章-年
日期:2019-11-20 14:16:4715-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
发表于 2013-10-31 11:47 |显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会

【架构革新 高效可控】2020年12月21日-23日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP