web-dev-qa-db-ja.com

nohupを使用して複数のコマンドを実行する方法

Nohupを使用して複数のコマンドを実行する必要があります。各コマンドは、前のコマンドの後に実行する必要があります。

私はこのコマンドを例として使用しました:

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

ただし、そのコマンドは機能しませんでした。

この目的のためにどのコマンドを使用する必要がありますか?

43
Ehsan

sh -cで囲みます。

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

コマンドのリストを別のシェルファイルに作成する方がはるかに簡単ではないでしょうか。 nohupなしのcommand.sh。

それからあなたは電話します:

Nohup bash command.sh
6
assaf

他の人はすでにNohupについて回答しています。実用的な補足として:screenまたはtmuxセッション内でこの種のことを行うことをお勧めします。そうすれば、切断して後で再接続し、出力と最終結果を確認できます。

4
janos

次のように簡単になります。

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

ただし、URLに特殊文字が含まれていると問題が発生する可能性があるため、より安全なオプションを使用できます。

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