LINUX.ORG.RU

Запуск всех скриптов в каталоге в фоновом режиме.

 


0

1

Добрый день, Уважаемые!

Будьте добрый, подскажите, как можно запустить все скрипты в каталоге (имена и количество скриптов может быть любым) в фоновом режиме, а не по очереди. Запуск должен осуществлятся одной командой стандартными средствами консоли Linux.

Суть: есть каталог scripts, а в нём script.sh, scriptik.sh, scripticshe.sh.

Нужно одной командой запустить из всех одновременно и «отпустить» консоль.

Пробовал так:

$ bash /home/user/scripts/*.sh & 

В фоне запускается только первый скрипт script.sh (выполняться он будет вечность, поэтому до второго очередь никогда не дойдёт.)

Пробовал так:

$ bash /home/user/scripts/"*.sh &" 

Пишет, что /home/user/scripts/«*.sh &» не такого файла или каталога.

В общем пробовал куча вариаций, но в итоге получалось так, что либо запускается самый-самый первый скрипт, либо вообще не запускается.

Будьте добрый, подскажите, как настоящие знатоки консоли решают данную проблему?

Ответ на: комментарий от kostik87

Не похоже.

$ find /home/user/scripts/ -type f -exec 'sh {} &' \;
find: 'sh /home/user/scripts/script.sh &': Нет такого файла или каталога
find: 'sh /home/user/scripts/scriptik.sh &': Нет такого файла или каталога
find: 'sh /home/user/scripts/scripticshe.sh &': Нет такого файла или каталога

Попробовал различные вариации данной команды - безуспешно.

PIKNIK ()
Ответ на: комментарий от PIKNIK

ампресанд не нужно экранировать попробуй чтот типа find /home/user/scripts/ -type f -exec sh \{\} & \;

ionanahin ★★★ ()
Ответ на: комментарий от PIKNIK

Как минимум символов «'» не должно быть.

find /home/user/scripts/ -type f -exec sh {} \;

Теперь разбирайтесь с запуском в фоне. Ну либо используйте while.

kostik87 ★★★★★ ()
Ответ на: комментарий от zolden

Отлично.
В общем с find запуск не подружился, сколько я не пробовал.

А вот команда

for i in /home/user/script/*.sh; do $i & done 

вполне себе хорошо отработала (chmod не нужен мне).

Благодарю за помощь в этом непростом деле автоматизации.

Удачи!

PIKNIK ()
Ответ на: комментарий от anonymous

Не сдавайся, ты должен показать процессору кто здесь главный

zolden ★★★★★ ()
Ответ на: комментарий от anonymous
cd /home/user/scripts; ls *.sh | xargs -n 1 -I{} -P666 sh {}

Тоже работает.
Спасибо.

Хотя мне for понятней, чем xargs.

PIKNIK ()
Ответ на: комментарий от anonymous

стандартными средствами консоли Linux
стандартными средствами консоли
стандартными средствами
стандартными

С какие пор parallel стало стандартным средством?

daniilArch ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.