в линуксе есть нативная утилита flock. Она не даст запустить повторный cron пока предыдущий еще работает. Второй процесс может ожидать завершения первого и только после этого запуститься, либо прерывать все повторные запуски, пока работает первый процесс.
/usr/bin/flock -w 600 /var/tmp/myscript.lock /root/myscript.sh
так же можешь сделать демона
while(true)
{
doWork();
sleep(1);
}