Intereting Posts
Как напечатать самое длинное число в строке? Является ли имя пользователя в регистре Unix чувствительным? Ошибка при создании виртуальной среды с помощью venv iptables: загрузка квоты на каждый MAC-адрес для всех хостов Настройка сенсорного драйвера для запуска службы Рассчитать дату с 1125 дней назад на не-GNU-системах? Как виртуальные консоли связаны с традиционными компьютерными терминалами? Создать псевдоним для каталога рабочего стола Как я могу наблюдать за своими действиями через терминал «Stdin: не является tty» почтой для запуска скриптов в качестве заданий cron Что значит быть в группе 0? извлечь строки, которые соответствуют списку слов в другом файле Подмена текста внутри сжатых файлов Понять вывод `udevadm info -a -n / dev / sdb` Как я могу заставить несколько виртуальных машин взаимодействовать в одной сети, используя VirtualBox и Ubuntu 16.04?

Как узнать, закончилась ли фоновая работа?

Я вызываю скрипт (do_something) в фоновом режиме с помощью другого скрипта (do_manythings), как показано ниже.

nohup do_something & 

Как я могу узнать в родительском скрипте (do_manythings), что задание (do_something) было выполнено?

Если вы хотите запустить фоновое задание, выполните некоторые другие действия, затем остановитесь и дождитесь завершения фонового задания, вы можете сделать

 nohup do_something &
 PID = $!
 ...больше вещей...
 ждать $ pid

В качестве альтернативы вы можете проверить, чтобы работа завершилась следующим образом:

 nohup do_something &
 PID = $!
 ...больше вещей...
 ps -p $ pid> / dev / null
 [$?  == 1] && echo "он ушел, приятель!"

Вы также можете искать start-stop-daemon (примеры в /etc/init.d/ ), если вы хотите использовать do_something как демон.