1. 程式人生 > >定時執行,如何判斷之前的指令碼是否跑完

定時執行,如何判斷之前的指令碼是否跑完

在PHP開發中,有時我們有這樣一種需求

一個指令碼 定時每兩分鐘執行一次 可是在下一個指令碼迴圈執行時 上面一個指令碼還沒跑完 我們就應該取消當前迴圈

那麼怎麼做呢 方法很多 我這裡提供一種我認為比較優雅的

這是一個test.php

<?php
echo 111;
sleep(1200);

這是一個shell指令碼

test.sh

#!/bin/bash
process=`ps -ef|grep '/Library/WebServer/Documents'|grep -v grep|wc -l`
if [ $process -eq 0 ]
 then
php /Library/WebServer/Documents
else
echo "1111"
fi

上面指令碼的意思相信大家也可以看懂,無非是判斷如果test.php還在跑,就輸出111,這裡大家可以改成自己的邏輯

只需要定時執行 ./test.sh 即可