Когда я пишу свои bash сценарии, я пытаюсь организовать их логически, и в некоторых случаях у меня есть сценарий (главный), который вызывает других (подчиненных). В мастере, если что-то выходит из строя, я просто использую exit
с соответствующим сообщением об ошибке, и все останавливается. Однако в сценариях подчиненного устройства сбой с использованием exit
остановит работу этого подчиненного устройства, управление будет возвращено мастеру, и мастер просто перейдет к следующей части своего выполнения.
Есть ли вариант (или, может быть, другая команда полностью), которая остановит подчиненное устройство, а также мастер? Я задавался вопросом, возможно, когда мастер запускается изначально, я каким-то образом захватываю PID, под которым он работает, а затем во всех последующих тестах, если мне нужно полное завершение, я использую что-то вроде kill PID#
(что, я думаю, я мог бы использовать в мастер, а также подчиненные).
Думая об этом с другой стороны, можно было бы использовать «выход 1» из ведомых устройств и внутри ведущего, протестировать $?
после вызова каждого ведомого сценария и, если это не 0, остановить?
Будет ли любой из этих подходов правильным?