2016-12-21 4 views
2

У меня есть несколько программ, каждый в своем подкаталоге, который мне нужно запустить в фоновом режиме.Как запустить несколько программ в фоновом режиме, с подоболочками и сохранить их в привязке?

  • Все они должны быть запущены с их собственным каталогом в качестве рабочего каталога.
  • Все они печатаются в стандартный вывод, который я хотел бы видеть слитым в терминале.

У меня есть следующий сценарий, но он не работает:

#/bin/bash 

(cd service1dir; service1) & 
(cd service2dir; service2) & 
(cd service3dir; service3) & 
(cd service4dir; service4) & 

только одна программа запускается, но я не знаю, почему.

FYI, целевая платформа git-bash на Windows, но я хочу, чтобы она также работала на macOS Sierra.

ответ

1

Я думаю, что вам не нужны эти скобки. Но тогда нужно вернуть cd в корневой каталог этих скриптов.

#!/bin/bash 

cd service1dir; service1 & 
cd -; 
cd service2dir; service2 & 
cd -; 
cd service3dir; service3 & 
cd -; 
cd service4dir; service4 & 

Это работает для меня под linux bash. Все службы запускаются в фоновом режиме, а вывод - в стандартный вывод.