V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  TaxKiz  ›  全部回复第 1 页 / 共 1 页
回复总数  4
2020-09-15 15:15:10 +08:00
回复了 xiaohantx 创建的主题 Linux 如何让任务每 a-b 分钟执行一次脚本
```sh
#!/bin/bash

export PATH='/bin:/sbin:/usr/bin:/usr/sbin'

# 替换成实际路径
P='/xxx/run.php'

while true; do

# 检测进程是否存在
ps -ef | grep $P | grep -v '\bgrep\b' >/dev/null 2>&1

# 如果进程不存在, 执行 PHP 脚本
if [ $? != '0' ]; then

rand_num=$(($RANDOM % 300 + 60))

declare -i i=1

while ((i < rand_num)); do
sleep 1
let i++
done

php $P

unset -v rand_num i

fi

# 每 1 秒检测一次进程, 可自定义
sleep 1

done
```

@xiaohantx
2020-09-15 14:48:50 +08:00
回复了 xiaohantx 创建的主题 Linux 如何让任务每 a-b 分钟执行一次脚本
@xiaohantx sleep 时间自己定义
2020-09-15 14:48:19 +08:00
回复了 xiaohantx 创建的主题 Linux 如何让任务每 a-b 分钟执行一次脚本
@xiaohantx 草率了,你加个 sleep

...
unset -v rand_num i

fi

sleep 1

done
2020-09-15 14:35:30 +08:00
回复了 xiaohantx 创建的主题 Linux 如何让任务每 a-b 分钟执行一次脚本
#!/bin/bash

export PATH='/bin:/sbin:/usr/bin:/usr/sbin'

while true; do

ps -ef | grep '/www/wwwroot/xxx.com/run.php' | grep -v '\bgrep\b' >/dev/null 2>&1

if [$? != 0]; then

rand_num=$(($RANDOM % 300 + 60))

declare -i i=1

while ((i < rand_num)); do
sleep 1
let i++
done

php /www/wwwroot/xxx.com/run.php

unset -v rand_num i

fi

done
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2715 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 14:50 · PVG 22:50 · LAX 06:50 · JFK 09:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.