it-swarm-eu.dev

Jak provést více příkazů pomocí nohupu

Potřebuji provést více příkazů pomocí Nohup. Každý příkaz by měl být proveden po předchozím příkazu.

Tento příkaz jsem použil jako příklad:

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

Tento příkaz však nefungoval.

Jaký příkaz mám za tímto účelem použít?

43
Ehsan

Zabalte jej do sh -c:

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

Nebylo by mnohem jednodušší vytvořit seznam příkazů v samostatném souboru Shell, např. command.sh, bez Nohupu.

Pak zavoláte:

Nohup bash command.sh
6
assaf

Ostatní již odpověděli na Nohup. Jako praktická vedlejší poznámka: Doporučuji dělat tento druh věcí v relaci screen nebo tmux. Tímto způsobem se můžete odpojit, pak se znovu připojit později a zobrazit výstup a konečný výsledek.

4
janos

Bylo by to jednodušší takto:

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

To však může způsobit problémy, pokud adresy URL obsahují speciální znaky, takže pro bezpečnější možnost můžete použít:

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