Мой код тебе
#!/bin/bash
script_file="$(/bin/readlink -f $0)"
lock_file=${script_file////_}
function executing {
echo "'${script_file}' already executing"
exit 1
}
(
flock -n 9 || executing
sleep 10
) 9> /var/lock/${lock_file}
На основе man flock
, только улучшение:
executing
Там, где я поставил здесь sleep 10
, можно поставить все основные скрипты.
Чтобы просто считать с помощью r, когда вы получаете другой файл, вы можете сделать что-то вроде:
r=1
while read sample
do
Rscript --vanilla --slave /projects/dpclust_pipeline.R -r ${r} -d /projects/preprocessing_out -o /projectsdp_out -i /projects/preprocessing_out/${sample}_master.txt
r=$(( r + 1 ))
done < path/to/sample_id.txt