У меня странная проблема, которая, вероятно, связана с аппаратной инициализацией. Я работаю над системой автоматического сбора данных на основе Java, которая работает на SBC с Ubuntu 16.04. На данный момент программа сбора данных запущена через cron, хотя я планирую перейти на systemd.
Он запускается и работает нормально, если я перезагружаю систему. Однако, если он выключен и запущен холодным способом (что является нормальным способом), программа завершает работу с ошибкой free(): corrupted unsorted chunks
. Если я начну это снова, кажется, работает нормально. Мне нужно выяснить, почему и, надеюсь, будет, но это может занять некоторое время, и в то же время система нуждается в дальнейшем тестировании, и мне нужен обходной путь, который перезапустит ее в случае сбоя. Просто добавление задержки не помогает.
Я хотел бы перезапустить процесс Java или перезагрузить систему из сценария оболочки bash, но только в случае сбоя. Если он завершается с нулевым кодом выхода (или, в идеале, с любым кодом из заранее определенного набора допустимых кодов выхода), он не должен быть перезапущен, и сценарий также должен завершиться.