Приветствую всех. Я настраиваю задание cron для выполнения сценария bash, и я беспокоюсь, что следующий может начаться до окончания предыдущего. Немного прибегая к помощи показывает, что популярный способ решения этой проблемы является flock
командой, используются следующим образом:Как проверить код выхода команды, выполняемой стаей?
flock -n lockfile myscript.sh
if [ $? -eq 1 ]; then
echo "Previous script is still running! Can't execute!"
fi
Это прекрасно работает. Однако, что мне делать, если я хочу проверить код выхода myscript.sh
? Независимо от того, какой код выхода, который он возвращает, будет перезаписан flock
, так что у меня нет способа узнать, успешно ли он выполнен или нет.
Или, если OP необходимо использовать '$?' Позже, избавиться от подоболочки и явно открыть/закрыть, например, 'exec 200> lockfile; если ... fi; exec 200> & - '. – ephemient
Это прекрасно работает. Большое спасибо Брайан. –