はじめに
SIGHUP
(Signal Hang UP)は、制御端末が閉じられたときにLinuxプロセスを終了する信号です。誤って端末を閉じたり、サーバーとの接続を失ったりした場合、その時点で実行されていたすべてのプロセスが自動的に終了します。
nohup
を使用する コマンドは、 SIGHUP
をブロックする1つの方法です。 信号を送り、端末/シェルからログアウトした後でもプロセスを完了できるようにします。
この記事では、 nohup
の使用方法を学習します プロセスの実行中にコマンドを実行します。
nohup構文
nohup
を使用するための構文 コマンドは次のとおりです:
nohup [command] [argument]
nohupオプション
nohup
コマンドには、 --help
という2つの基本的なコマンドオプションがあります。 および--version
オプション。
ヘルプメッセージを表示するには、次のコマンドを実行します。
nohup --help
バージョン情報を表示するには、次のように入力します。
nohup --version
nohupの例
nohup
を使用する方法はいくつかあります 必要なプロセスをバックグラウンドで実行する、複数のプロセスを同時に実行する、出力を別のファイルにリダイレクトするなどのコマンド。
以下の例では、 nohup
の一般的な使用例を説明しています。 コマンド。
1。 nohupでプロセスを実行する
nohup
を使用してコマンドを実行するには 引数なしで、次の構文に従ってください:
nohup [command]
シェルは出力を無視し、それを nohup.outに追加します ファイル。
たとえば、 example.shを実行します bashスクリプト(単純な Hello World スクリプト)は、 Hello Worldをプロンプトする必要があります nohup.outファイルのメッセージ :
nohup bash example.sh
次のコマンドでファイルの内容を確認します:
cat nohup.out
2。 nohupを使用してバックグラウンドでプロセスを実行する
Linuxプロセスをバックグラウンドで実行すると、作業中のターミナルが解放されます。 nohup
を使用してバックグラウンドでLinuxプロセスを実行するには コマンド、 &
を追加します コマンドの最後にある記号:
nohup [command] &
たとえば、 example.shを実行するには バックグラウンドでbashスクリプトを使用するには、次のコマンドを使用します:
nohup bash example.sh &
出力には、シェルジョブIDとプロセスIDが表示されます- [1] 7366 以下の例では。
コマンドをフォアグラウンドにするには、次のように入力します。
fg
出力は、プロセスが進行中であるか完了しているかを示します。
3。 nohupを使用してバックグラウンドで複数のプロセスを実行する
nohup bach -c '[command1] && [command2]'
[command1]
を置き換えます および[command2]
お好みのコマンドで。必要に応じてコマンドを追加し、必ず &&
で区切ります。 。
たとえば、現在の月の日付/時刻とカレンダーを表示するには、次のコマンドを実行します。
nohup bash -c 'date && cal'
出力はnohup.outに送信されるため ファイルの場合は、catコマンドを使用してファイルの内容を一覧表示し、上記のコマンドを確認します。
cat nohup.out
出力には、上記のコマンドでプロンプトが表示された日付とカレンダーが表示されます。
4。出力を別のファイルにリダイレクトする
上記のセクションで述べたように、 nohup
すべての出力メッセージとエラーをnohub.outに記録します ファイル。
コマンド内でカスタムの場所を指定して、これらのメッセージをリダイレクトします。
nohup [command] > /path/to/output/file.txt
以下の例では、コマンド nohup bash -c 'date && cal'
の出力 output.txtにリダイレクトされます ファイル。次のコマンドで出力を確認します:
cat output.txt