Limpa a maneira de trazer de volta o processo em segundo plano para o primeiro plano no shell script

3

Como exemplo: Eu tenho o script shell que inicia o weblogic (que continuará a ser executado) e, em seguida, a implantação

No final, trago o background back para o primeiro plano, para que o shell script não saia (Exited with code 0)

#!/bin/bash

set -m
startWebLogic.sh &

# create resources in weblogic
# deploy war
# ...

jobs -l
fg %1

Eu tive que usar set -m , para permitir o controle do trabalho, mas também descobri que não é a maneira mais fácil de usá-lo em shells não interativos.

Existe uma maneira melhor de lidar com isso?

    
por Patrik Mihalčin 25.11.2016 / 14:11

1 resposta

2

Até onde eu entendi sua pergunta, você está procurando wait :

#!/bin/bash

startWebLogic.sh &

# create resources in weblogic
# deploy war
# ...

wait

Não "coloca o processo em primeiro plano". Mas espera até que o weblogic retorne. Portanto, o script de shell não sai até que o weblogic seja encerrado. Qual é o efeito que você obteve com fg %1 .

de help wait :

Waits for each process identified by an ID, which may be a process ID or a job specification, and reports its termination status. If ID is not given, waits for all currently active child processes, and the return status is zero.

    
por 25.11.2016 / 15:15