当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 6 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : crontab定时任务运行问题,求解答
帖子发表于 : 2017-09-26 23:09 

注册: 2015-03-16 18:10
帖子: 4
系统: ubuntu
送出感谢: 1
接收感谢: 0 次
Ubuntu-server,使用Ubuntu拨号。由于拨号时运营商会随机给内网或外网IP,于是写了个脚本检测当前IP如果IP为内网IP段则重新拨号。
脚本内容:
代码:
#!/bin/bash
IP="0.0.0.0"

#循环
while :
do
        #获取IP
        IP=`ifconfig |grep -A1 "ppp0" |grep "inet" |awk -F . '{print $1}'|awk -F \: '{print $2}'`
        #检查IP是否为空
        if [ "${IP}" != "" ]
        then
                echo "IP head is $IP"
                #获取IP头是否正确
                if [ "$IP" != "100" ]
                then
                        echo "Finish,Exit!"
                        exit 0
                else
                        sleep 1
                        echo "No luck,clean up and retry!"
                        sleep 1
                        echo "Killing pppd process..."
                #       sudo killall pppd
                        sleep 2
                        echo "Clearing IP"
                        sleep 3
                #       pon dsl-provider
                        echo ""
                        IP=""
                        sleep 20
                fi
        else
                #sudo killall pppd
                sleep 5
                echo "run ppp"
                #pon dsl-provider
                sleep 20
                IP=""
        fi

done

将其加入到定时任务
*/1 * * * * /home/qiangwushuang/ppp/pppoe.sh >> /home/qiangwushuang/ppp/pppoe.log
但是当运行这个脚本的时候会重新启动一个cron进程。导致系统由两个定时任务的进程。 :Cry 改了一晚上都没有改好。。
定时任务执行前:
附件:
文件注释: 脚本运行前
之前.PNG
之前.PNG [ 11.89 KiB | 被浏览 807 次 ]


定时任务执行后:
附件:
文件注释: 脚本运行后
之后.PNG
之后.PNG [ 14.71 KiB | 被浏览 807 次 ]


并且使用ps -A|grep cron,显示也是两个进程。

我测试发现只要里面有while循环就会导致这个问题。


页首
 用户资料  
 
2 楼 
 文章标题 : Re: crontab定时任务运行问题,求解答
帖子发表于 : 2017-09-27 12:00 
头像

注册: 2007-07-14 20:45
帖子: 1259
送出感谢: 67
接收感谢: 36
&&

你缺少上述符号


_________________
开源、共享、自由

微信号非公众号:xfiles_sky

用手机点击这里有奇迹发生,其他无效


页首
 用户资料  
 
3 楼 
 文章标题 : Re: crontab定时任务运行问题,求解答
帖子发表于 : 2017-09-27 14:42 
头像

注册: 2008-09-18 13:11
帖子: 2910
送出感谢: 1
接收感谢: 482
cron就是这么设计的。到点执行时,另外生成一个cron进程来处理事务。待执行的shell没有终止之前,生成的cron也不会退出。
贴一段systemctl status cron的记录

代码:
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-09-27 14:27:17 CST; 6min ago
     Docs: man:cron(8)
 Main PID: 654 (cron)
   CGroup: /system.slice/cron.service
           └─654 /usr/sbin/cron -f

Sep 27 14:27:17 xxx cron[654]: (CRON) INFO (pidfile fd = 3)
Sep 27 14:27:19 xxx cron[654]: (CRON) INFO (Running @reboot jobs)
Sep 27 14:30:01 xxx CRON[1903]: pam_unix(cron:session): session opened for user root by (uid=0)
Sep 27 14:30:01 xxx CRON[1904]: (root) CMD ([ -x /usr/sbin/dma ] && /usr/sbin/dma -q1)


cron的deamon进程id是654,到点后,创建一个新的cron进程,pid为1903,然后这个进程再去创建pid为1904的shell进程去执行具体的命令 [ -x /usr/sbin/dma ] && /usr/sbin/dma -q1



_________________
评价: 3.7% qiangwushuang
 
页首
 用户资料  
 
4 楼 
 文章标题 : Re: crontab定时任务运行问题,求解答
帖子发表于 : 2017-09-27 15:57 

注册: 2015-03-16 18:10
帖子: 4
系统: ubuntu
送出感谢: 1
接收感谢: 0 次
astolia 写道:
cron就是这么设计的。到点执行时,另外生成一个cron进程来处理事务。待执行的shell没有终止之前,生成的cron也不会退出。
贴一段systemctl status cron的记录

代码:
● cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2017-09-27 14:27:17 CST; 6min ago
     Docs: man:cron(8)
 Main PID: 654 (cron)
   CGroup: /system.slice/cron.service
           └─654 /usr/sbin/cron -f

Sep 27 14:27:17 xxx cron[654]: (CRON) INFO (pidfile fd = 3)
Sep 27 14:27:19 xxx cron[654]: (CRON) INFO (Running @reboot jobs)
Sep 27 14:30:01 xxx CRON[1903]: pam_unix(cron:session): session opened for user root by (uid=0)
Sep 27 14:30:01 xxx CRON[1904]: (root) CMD ([ -x /usr/sbin/dma ] && /usr/sbin/dma -q1)


cron的deamon进程id是654,到点后,创建一个新的cron进程,pid为1903,然后这个进程再去创建pid为1904的shell进程去执行具体的命令 [ -x /usr/sbin/dma ] && /usr/sbin/dma -q1


谢谢回复,测试了一下确实是这样。


页首
 用户资料  
 
5 楼 
 文章标题 : Re: crontab定时任务运行问题,求解答
帖子发表于 : 2017-09-27 15:59 

注册: 2015-03-16 18:10
帖子: 4
系统: ubuntu
送出感谢: 1
接收感谢: 0 次
九天星 写道:
&&

你缺少上述符号


这个符号加在哪里?这个应该是一条命令啊


页首
 用户资料  
 
6 楼 
 文章标题 : Re: crontab定时任务运行问题,求解答
帖子发表于 : 2017-10-04 14:46 

注册: 2007-09-18 8:45
帖子: 739
送出感谢: 1
接收感谢: 1
qiangwushuang 写道:
九天星 写道:
&&

你缺少上述符号


这个符号加在哪里?这个应该是一条命令啊

命令1 && 命令2 表示,命令1执行成功后,再执行命令2


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 6 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译