web-dev-qa-db-fra.com

Comment exécuter plusieurs commandes à l'aide de nohup

J'ai besoin d'exécuter plusieurs commandes en utilisant Nohup. Chaque commande doit être exécutée après la commande précédente.

J'ai utilisé cette commande comme exemple:

Nohup wget $url && wget $url2 > /dev/null 2>&1 &

Cependant, cette commande n'a pas fonctionné.

Quelle commande dois-je utiliser à cet effet?

43
Ehsan

Envelopper dans sh -c:

Nohup sh -c 'wget "$0" && wget "$1"' "$url1" "$url2" > /dev/null &
63
jw013

Ne serait-il pas beaucoup plus simple de créer votre liste de commandes dans un fichier Shell séparé, par ex. command.sh, sans Nohup.

Ensuite, vous appelez:

Nohup bash command.sh
6
assaf

D'autres ont déjà répondu sur Nohup. Comme note pratique: je recommande de faire ce genre de choses dans une session screen ou tmux. De cette façon, vous pouvez vous déconnecter, puis vous reconnecter plus tard et voir la sortie et le résultat final.

4
janos

Ce serait plus simple comme ça:

Nohup sh -c "wget $url && wget $url2" > /dev/null 2>&1 &

Cependant, cela peut entraîner des problèmes si les URL contiennent des caractères spéciaux, vous pouvez donc utiliser une option plus sûre:

Nohup sh -c "wget \"$url\" && wget \"$url2\"" > /dev/null 2>&1 &
2
Didi Kohen