Ho in esecuzione il contenitore ubuntu docker con solo uno script bash all'interno. Voglio iniziare la mia applicazione all'interno di quel contenitore con exec finestra mobile come quella:Perché la finestra mobile exec sta eliminando il processo nohup all'uscita?
docker exec -it 0b3fc9dd35f2 ./main.sh
All'interno script principale voglio correre un'altra applicazione con nohup come questa è una lunga applicazione in esecuzione:
#!/bin/bash
nohup ./java.sh &
#with this strange sleep the script is working
#sleep 1
echo `date` finish main >> /status.log
Il java .SH script è come segue (per semplicità si tratta di uno script fittizio):
#!/bin/bash
sleep 10
echo `date` finish java >> /status.log
Il problema è che java.sh viene ucciso subito dopo ritorna finestra mobile exec. La domanda è: perché?
L'unica soluzione che ho scoperto è l'aggiunta di un dummy sleep 1
nel primo script dopo l'avvio di nohup. Il secondo processo sta funzionando bene. Hai qualche idea del perché sia così?
[EDIT]
Seconda soluzione è quella di aggiungere un po 'echo
o trap
comando per java.sh
scritto poco prima di dormire. Di quanto funzioni bene. Sfortunatamente non posso usare questa soluzione alternativa al posto di questo script ho il processo java.
non si inizia un contenitore con 'finestra mobile exec', ma con una 'finestra mobile 'e dovresti dare un'occhiata da vicino alle direttive' CMD' e 'ENTRYPOINT' in a Do ckerfile – user2915097
Ho già in esecuzione container con processi diversi. Con il docker exec voglio iniziare un secondo. Questo è lo scenario di integrazione continua, quindi vogliamo avere più processi in un unico contenitore. –