コマンド「example-command」の例を見てみましょう。
example-command
ターミナルで、およびexample-command
実行します。example-command
も殺されます。example-command &
"ですが、同じ動作です。ターミナルを閉じたときにコマンドが終了しないようにコマンドを実行するにはどうすればよいですか?
結果が同じである2つの方法があります。
Nohup
を使用してください。例:Nohup example-command
。バックグラウンドで通常どおりに作業できます。終了した後も実行を継続します。disown
コマンドを使用できます。残念ながら、私が知る限り、disown
はbash固有です。 tcsh
などの別のシェルを使用する場合は、上記のNohup
形式に制限される可能性があります。最初に同様の質問を検索してください。
上記の方法に加えて、次のことができます。
setsid command_name
例えば:
setsid xclock
ありがとう
Zsh(bashではない)では、次のことができます。
example-command &; disown {pid}
あるいは単に
example-command &; disown
screen コマンドの使用を検討することもできます。
Nohupの例-コマンド
'at'または 'batch'コマンド を使用して、現在の時刻を指定することもできます。
disownはbashに組み込まれています。次のようなコマンドのラッパーシェルスクリプトを作成できます。
#!/bin/bash
$1 &
P=`which $1`
disown `pidof ${P}`
(決して)最も堅牢なスクリプトではありませんが、作業を進めるのに役立つ場合があります。例えば:
$./launch_script.sh myProgram
プログラムを編集している場合は、プログラムのソースでこれを行うこともできます。