Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: bash распаралеливание процессов  (Прочитано 356 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Attid

  • Автор темы
  • Участник
  • *
  • Сообщений: 175
    • Просмотр профиля
bash распаралеливание процессов
« : 03 Август 2016, 10:49:05 »
добрый день.
есть необходимость запустить 3 процесса, и когда они все 3 выполнятся, то запустить следующий.

т.е. примерно следующее

wget ya.ru &
wget www.ru &
wget ubunt.ru &

rem тут запустить что-то что подождет завершение всех процессов

cp * /tmp

вот что запустить в промежутке ?

Axa-Ru

  • Гость
Re: bash распаралеливание процессов
« Ответ #1 : 03 Август 2016, 12:28:01 »
Себе дороже.
Только всякими финтами и выйдет себе дороже.
Если есть желание, проверяйте в цикле процессы с помощью pgrep.

И да, если вы что то хотитет запустить в промежутке, то это что то не зависит от скачивания. Вот его и запустите в виде отдельного процесса до скачивания.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3095
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: bash распаралеливание процессов
« Ответ #2 : 03 Август 2016, 12:43:18 »
Attid, Axa-Ru, зачем процессы? Есть прекрасные flock. И проверять на наличие этих самых файлов
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Attid

  • Автор темы
  • Участник
  • *
  • Сообщений: 175
    • Просмотр профиля
Re: bash распаралеливание процессов
« Ответ #3 : 03 Август 2016, 16:29:03 »
EvangelionDeath, что-то не пойму как сделать флок на 3 процесса. можешь пример набросать ?

Пользователь добавил сообщение 03 Август 2016, 17:10:55:
оказалось их можно последовательно писать, вышло вот так
echo

flock 51 ./test.sh&
flock 52 ./test1.sh&
flock 53 ./test2.sh&

sleep 5

flock 51 flock 52 flock 53 echo all done
« Последнее редактирование: 03 Август 2016, 17:10:55 от Attid »

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 5660
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: bash распаралеливание процессов
« Ответ #4 : 03 Август 2016, 23:05:28 »
Сложно то как…
Код: Bash
  1. {
  2.     wget ya.ru &
  3.     wget www.ru &
  4.     wget ubunt.ru
  5. }
  6.  
  7. cp * /tmp
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.065 секунд. Запросов: 24.