Prova:
invoke-rc.d tomcat stop > /dev/null 2>&1 || true
Un po 'di storia:
[email protected]: # true
[email protected]: # echo $?
0
[email protected]: # false
[email protected]: # echo $?
1
[email protected]: # which true
/bin/true
[email protected]: # which false
/bin/false
La vera soluzione sta guardando lo script di init gatto per vedere come si sa se Tomcat è in esecuzione :) In questo modo, non lo tormenta inutilmente.
Vedi this post dall'altra suggerimento per disinserire/set + e. Mentre risolverebbe il tuo problema immediato, potresti scoprire che hai bisogno del comportamento non impostato di recente nel tuo script, specialmente dal momento che stai copiando dei file.
Questo è uno dei principali motivi per cui sono stati costituiti veri e falsi, altri che fare Makefiles si comportano come previsto in una varietà di ambienti di build.
Inoltre, impostare + e non è del tutto portatile, vale a dire alcune versioni di Solaris (e anche Dash) .. ma dubito che questo è un problema per voi.
fonte
2009-07-02 15:40:37
Non è il comportamento predefinito di bash? Avrei potuto giurare che era (è necessario agire esplicitamente per terminare uno script se qualche comando fallisce ...) –
Se si esegue questo script e tomcat non è in esecuzione, lo script interromperà l'esecuzione dal primo errore di restituzione del comando. Voglio che lo script continui. – JorgeO
@Alex: è il valore predefinito ma esiste qualcosa che sovrascrive l'impostazione predefinita. –