bash的bash脚本失败

时间:2018-08-16 17:06:10

标签: bash ssh cron flock

我有一个任务:每十秒钟通过curl调用一个脚本。

为此,我这样做:

  1. 创建bash脚本:admin_cron.sh

    #!/bin/bash
    while :; do
        sleep 10
        flock -n /var/www/admin/data/cron_lock -c \
            'curl -m 3 "http://url.com/?mod=kasdim_robot_cron&server=true"' &
    done
    
  2. 在crontab中添加规则:

    */1 * * * * flock -n /var/www/admin/data/admin_lock -c /var/www/admin/data/admin_cron.sh
    

因此,如果文件admin_cron.sh空闲,则cron将每分钟启动admin_lock。然后,如果admin_cron.sh被终止或死亡,则admin_cron.sh重新开始。没关系。

admin_cron.sh尝试每10秒通过curl调用我的URL。最长卷曲时间为三秒钟。

问题:当我开始时,大约两到三天一切正常。之后,我在htop实用程序中看到admin_cron.sh是悬停过程:

  1. 在开始时间:

      CPU[                                                                             0.0%]   Tasks: 61, 53 thr; 1 running
      Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||461M/996M]   Load average: 0.44 0.83 0.94
      Swp[                                                                            0K/0K]   Uptime: 86 days, 18:43:58
    
      PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
      707 root       20   0 29600  2828  2512 S  0.0  0.3  1:27.18 ├─ /usr/sbin/cron -f
    22150 root       20   0 48868  2864  2416 S  0.0  0.3  0:00.00 │  └─ /usr/sbin/CRON -f
    22151 admin      20   0  4288   720   648 S  0.0  0.1  0:00.00 │     └─ /bin/sh -c flock -n /var/www/admin/data/admin_lock -c /var/www/admin/data/admin_cron.sh
    22156 admin      20   0 10044   816   728 S  0.0  0.1  0:00.00 │        └─ flock -n /var/www/admin/data/admin_lock -c /var/www/admin/data/admin_cron.sh
    22161 admin      20   0  4288   764   692 S  0.0  0.1  0:00.00 │           └─ /bin/sh -c /var/www/admin/data/admin_cron.sh
    22167 admin      20   0 11132  2896  2648 S  0.0  0.3  0:00.00 │              └+ /bin/bash /var/www/admin/data/admin_cron.sh
    
  2. 一段时间后:

      CPU[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||100.0%]   Tasks: 64, 53 thr; 2 running
      Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||466M/996M]   Load average: 1.00 1.00 1.00
      Swp[                                                                            0K/0K]   Uptime: 86 days, 18:42:30
    
      PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command
      707 root       20   0 29600  2828  2512 S  0.0  0.3  1:27.18 ├─ /usr/sbin/cron -f
    25818 root       20   0 48868  2864  2416 S  0.0  0.3  0:00.00 │  └─ /usr/sbin/CRON -f
    25819 admin      20   0  4288   752   676 S  0.0  0.1  0:00.00 │     └─ /bin/sh -c flock -n /var/www/admin/data/admin_lock -c /var/www/admin/data/admin_cron.sh
    25821 admin      20   0 10044   800   712 S  0.0  0.1  0:00.00 │        └─ flock -n /var/www/admin/data/admin_lock -c /var/www/admin/data/admin_cron.sh
    25824 admin      20   0  4288   788   716 S  0.0  0.1  0:00.00 │           └─ /bin/sh -c /var/www/admin/data/admin_cron.sh
    25825 admin      20   0 12636  4260  2552 R 98.7  0.4 60h56:25 │              └─ /bin/bash /var/www/admin/data/admin_cron.sh
    

我的问题在哪里?

0 个答案:

没有答案