Załóżmy, że mam trzy (lub więcej) skrypty bash: script1.sh
, script2.sh
, i script3.sh
. Chciałbym wywołać wszystkie trzy skrypty i uruchomić je równolegle . Jednym ze sposobów jest wykonanie następujących poleceń:
nohup bash script1.sh &
nohup bash script2.sh &
nohup bash script3.sh &
(Ogólnie rzecz biorąc, skrypty mogą potrwać kilka godzin lub dni, więc chciałbym ich użyć nohup
, aby kontynuowały działanie nawet po zamknięciu konsoli).
Ale czy jest jakiś sposób na wykonanie tych trzech poleceń równolegle za pomocą jednego wywołania?
Myślałem o czymś takim
nohup bash script{1..3}.sh &
ale wydaje się to wykonać script1.sh
, script2.sh
i script3.sh
kolejno, a nie równolegle.
nohup bash script{1..100}.sh &
lub for i in {1..100}; do nohup bash script{1..100} &; done
), zamiast pisać nohup bash script*.sh &
100 razy.
screen
(lub tmux
), aby rozwiązać problem z konsolą, ale zachować dostęp do danych wyjściowych (i danych wejściowych).
nohup ... & nohup ... & nohup ... &
. Jeśli masz na myśli, że chcesz uruchomić wszystkie skrypty bez wpisywania nazwy każdego skryptu osobno, zrobi to prosta pętla.