Я хочу, чтобы скрипт выполнялся на узлах кластера, чтобы настроить их для дальнейших сценариев и, чтобы избежать проблем параллелизма сценариев, использовать flock для их синхронизации.Проблема заключается в том, что скрипт работает как шарм в обычном bash, в то время как он не работает с синтаксической ошибкой в SGE.
Сценарий
#!/bin/bash
LF=/var/lock/sgenodesetup
busy(){
echo scrip already running - lockfile: $LF
sleep 60
exit
}
(
flock -xn 99 || busy
echo setup command 1
echo setup command 2
) 99>$LF
И сообщение об ошибке
/var/spool/gridengine/execd/sge1/job_scripts/28: 15: /var/spool/gridengine/execd/sge1/job_scripts/28: Syntax error: word unexpected
Я уже пытался использовать флаг -S для qsub, чтобы гарантировать, что оболочка bash используется для выполнения задания, но ошибка сохраняется при запуске в командной строке, отражая ожидаемые строки.
gridengine-master version6.2u5-7.4