Ниже упрощенные (команды printf/echo/cd/sleep/progressbar, которые не имеют значения, оставлены без изменений). Сценарий оболочки bash завершается после первого выполнения двоичного файла. Почему это? Могу ли я сделать или проверить что-либо без изменения самого двоичного файла (может ли это сделать только в определенной степени)?Сценарий оболочки bash завершается после выполнения программы в цикле
PROGRESS=0
SIMULATIONS=30
for number in $(seq ${PROGRESS} ${SIMULATIONS})
do
echo 'INB4 TERMINATION'
nohup ./binary -someflag
# do other stuff next
echo 'NEVER GETS HERE'
done
Я прочитал на traps
, но добавив следующую строку:
trap "echo 'trap invoked'; exit" SIGHUP SIGINT SIGTERM
- не похоже на работу.
- Использование
nohup
или нет, похоже, не имеет значения. - Петля отлично работает без двоичной команды.
, что двоичная делает
Он работает 3D-эксперимент моделирования робот (который сам по себе вилы один раз запустить 2 робота тренажерных процессов параллельно (с использованием C/C система ++() команда). Кроме того, каждый симулятор роботов запускает поток для каждого из 16 контроллеров роботов). Таким образом, двоичный файл представляет собой родительский процесс из 32 потоков. Если это имеет смысл вообще, имеет ли это значение?
запустить ли сценарий двоичная, как ожидалось? (По крайней мере, в первый раз?) – hek2mgl
Да, извините, забыл добавить это. Бинарный файл не выдает никаких ошибок и (возможно) заканчивается с статусом выхода 0. Я не думаю, что могу проверить статус выхода, потому что мой скрипт уходит сразу после этого, или я должен быть в состоянии? –
вы можете попробовать добавить inline 'echo $?' Сразу после вызова своего скрипта для проверки статуса выхода: 'nohup ./binary -someflag; echo $? '. –