команда ожидания linux выполняется только в том случае, если предыдущее задание выполнено успешно.

#linux #wait

Вопрос:

Я конечный пользователь, у которого есть доступ к Putty, чтобы запускать выборочные сценарии на нашем сервере, как они запускались бы во время нашего ночного пакетного процесса.

Некоторые из них я запускаю последовательно, используя

 run_process.ksh kj_job1 amp; wait; run_process.ksh kj_job2
 

Однако kj_job1 может выйти из строя, и kj_job2 все равно будет работать. Я хотел бы, чтобы kj_job2 продолжил только в том случае, если kj_job1 был успешно завершен, но я не могу найти онлайн-руководство, которое расскажет мне, что мне нужно сделать.

Мои знания в этой области ограничены, я просто перехожу в каталог, где у нас есть файл run_process.ksh, а затем добавьте название задания, которое я хочу выполнить. Недавно я узнал о команде amp; wait для запуска строк и (), которые я могу запускать параллельно.

Любая помощь приветствуется.

Комментарии:

1. Почему вы основываете и используете wait здесь? Просто беги run_process.ksh kj_job1 amp;amp; run_process.ksh kj_job2 . Это означает «выполните первую команду и, если она будет успешной, выполните вторую команду».

2. @larsks — Если честно, я понятия не имею. Из того, что я обнаружил в прошлом, команда «amp; ждать » означала выполнение этого задания и ожидание его завершения перед запуском следующего задания. Понятия не имею об этом аспекте фона. Использование «amp; amp; » звучит именно так, как я должен делать. Можно ли использовать это и при одновременных запусках заданий, чтобы я мог выполнить «run_process.ksh kj_job1 amp;amp; (run_process.ksh kj_job2 amp; run_process.ksh kj_job3) amp;amp; run_process.ksh kj_job4», Ожидая, что будет запущен kj_job1, и только в случае успеха он запустит kj_job2 и kj_job3, затем, если оба ОК, запустите kj_job4 ?