バックグラウンドでUnixジョブを実行すると(&、bgコマンドを使用)、セッションからログアウトすると、プロセスは強制終了されます。 これを回避するには、nohupでジョブを実行するか、at、batch、またはcronコマンドを使用してバッチジョブとして作成するいくつかの方法を使用します。
このクイックヒントは初心者のためのものです。 あなたはしばらくの間、nohupを使用してきた場合は、私たちにコメントを残して、あなたがnohupを使用する状況の下で教えてください。,
このクイックヒントでは、nohupを使用して、ログアウト後でもプロセスを実行する方法を確認しましょう。
Nohupはno hang upの略で、以下に示すように実行できます。
nohup構文:
# nohup command-with-options &
nohupは、終了に時間がかかるシェルスクリプトまたはコマンドを実行する必要がある場合に非常に役立ちます。 その場合、シェルに接続してコマンドが完了するのを待つことは望ましくありません。 代わりに、nohupで実行し、シェルを終了して他の作業を続行します。
nohupについての説明。,out file
デフォルトでは、標準出力はnohupにリダイレクトされます。現在のディレクトリ内のoutファイル。 そして、標準エラーはstdoutにリダイレクトされるため、nohupにも移動します。出ろ だから、あなたのnohup。outには、nohupコマンドを使用して実行したスクリプトからの標準出力とエラーメッセージの両方が含まれます。
nohupを使用する代わりに。通常のシェルリダイレクトを使用して、出力をファイルにリダイレクトすることもできます。,
例:両方の標準出力に行を印刷します&標準エラー
while(true)doecho "standard output"echo "standard error" 1>&2 sleep 1;done
リダイレクトせずにスクリプトを実行します
リダイレクトしてスクリプトを実行します
シェルからログアウトしてもう一度ログインすると、その行が表示されます。custom-script.sh バックグラウンドで実行する。
$ ps aux | grep sathiya sathiya 12034 0.0 0.1 4912 1080 pts/2 S 14:10 0:00 sh custom-script.sh