管理画面でCSVファイル出力など、2度押し防止対策として使ってます。

//プロセスID取得
$pid = getmypid();

取得したプロセスIDを一時的にファイルに保存
タスク実行後に、ファイル削除

$file = "/tmp/pid.txt";

$fp = fopen($file,"w");
fwrite($fp,$pid);
fclose($fp);

//タスク実行

//ファイル削除
unlink($file);

タスクが実行中かどうかは、上記で生成したプロセスIDを格納したファイルを参照し、
そのプロセスIDが実行されているかどうかpsコマンドで確認するように書いてます。

$file = "/tmp/pid.txt";
if(file_exists($file)) {
    // ファイル内に記載されているプロセスIDを取得
    $pid = file_get_contents($file);

    //取得したプロセスIDが動いていないかチェック
    $cmd = "ps h " . $pid;
    exec($cmd, $output, $result);
}

PHPでプロセスIDを取得するのは初めてやりました〜