Как получить идентификатор процесса команды

Мы выполняем некоторую команду в пакетном режиме. Нам нужно выполнить еще несколько задач после выполнения существующей команды, поэтому нам нужно подождать, пока эта команда не будет выполнена.

Например:

bsub -q gui -I calibre -drc -batch wait 

Можете ли вы рассказать, как мы можем получить идентификатор процесса этой работы, упомянутый в команде wait, или какую-либо другую альтернативу ждать, пока существующая команда не завершится?

4 Solutions collect form web for “Как получить идентификатор процесса команды”

Попробуй это

 bsub -q gui -I calibre -drc -batch & pid=$! wait ${pid} 

Здесь pid – переменная. Вы можете назвать это чем угодно.

Встроенная команда wait уже должна выполнить трюк – она ​​должна подождать, пока bsub будет завершен, хотя bsub будет работать в фоновом режиме. Но если вы не хотите использовать wait , вы можете получить PID, например, pgrep bsub или ps -eo pid,comm | grep bsub ps -eo pid,comm | grep bsub а затем вы можете написать свою собственную процедуру ожидания до ps -eo pid,comm | grep bsub .

Мы попробовали верхнюю команду pid = $! wait $ {pid}, но мы получаем ошибку

«Подождите слишком много аргументов»

Пожалуйста, изучите его и, если возможно, примите решение.

Спасибо Yisha

Мы попробовали верхнюю команду, это также pgrep bsub, а затем подождите pgrep bsub, но мы получаем ошибку

«Подождите слишком много аргументов»

Пожалуйста, изучите его и, если возможно, примите решение.

Спасибо Yisha

Linux и Unix - лучшая ОС в мире.