我正在运行一个 cron 作业,每分钟多次执行一个 php 文件,就像这样
* * * * * /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
* * * * * sleep 10; /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
* * * * * sleep 20; /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
* * * * * sleep 30; /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
* * * * * sleep 40; /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
* * * * * sleep 50; /usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
执行myFile.php
正常,但是当我计算正在运行的进程数时,
ps -ef | grep php | wc -l
它加起来并且 CPU 使用率达到 100%!
我应该运行单个 bash 文件并从该 bash 文件内部交错运行多个 php 文件吗?
如果是的话我该如何编写 bash 脚本?
#!/bin/bash
????
????
????
编辑:我想提一下,该文件的执行应该在前一次执行完成后进行。
此外,正如 krisFR 指出的那样,cron 任务并不是强制性的
答案1
我不知道你的脚本实际上在做什么,也许它需要大量的服务器资源,而且下一个脚本肯定会在前一个脚本完成之前启动。这是你想要的吗?我猜“不”。
我建议运行一个Bash
脚本,例如:
#!/bin/bash
while true; do
/usr/bin/php /var/www/html/myFile.php >> /var/www/html/cronlog 2> /dev/null
sleep 10
done
假设您将上述代码放在文件中,/home/me/myscript.sh
您可以使用以下命令在后台运行它:
nohup /home/me/myscript.sh &
测试并检查它是否满足您的需要。