Как запретить запуск скрипта по крону больше 1 раза?
/usr/bin/flock -w 600 /var/tmp/myscript.lock /root/myscript.sh

 Эта комманда запустит /root/myscript.sh и создаст lock-файл для данного процесса. Пока он активен, новый вызов данного скрипта не произойдет.
После завершения программы, блокировка файла снимается и процесс может быть снова запущен.
Параметр -w 600 определяет время ожидания комманды flock на освобождение lock-файла.
Для моментальной отмены выполнения процесса используйте параметр -w 0, для ожидания же бесконечно долгого времени параметр нужно опустить.

https://pingtool.org/ru/using-flock-to-ensure-only...
<?
//Проверка блокировки
if(file_exists("lock.txt"))
  die("copy");

function test228($msg) {
  if (!$f = fopen('test.txt', 'a+')) return false;
  @fputs($f, date('H:i:s > ').$msg."\r\n"));
  @fclose($f);
  return true;
  }

header('Content-Length: 1');
header('Connection: close;');
echo ' ';
@flush();
@ob_flush();

//Блокируем
@file_put_contents("lock.txt", "");

for($i=0; $i<3; $i++) {
    test228("test"); // если использовать эхо будет падать
    sleep(10);
}

//Удаляем блокировку
@unlink("lock.txt");
?>