ウェブサイト検索

LinuxにおけるNohupコマンドの例


Linuxのnohupコマンドは、プロセスに受信する(ハングアップ)信号を無視するように指示するために使用されます。SIGHUP信号は、現在の端末が閉じられるときにバックグラウンドジョブに送信されます。したがって、バックグラウンドでジョブを実行し、端末を閉じても、バックグラウンドで実行されているのを見ることができます。

このチュートリアルでは、例を通じてLinuxでnohupコマンドを使用する方法を学びます。このコマンドで使用できるさまざまなオプションについて学ぶために、以下に従ってください。

このチュートリアルでは学びます:

  • Linuxでnohupコマンドを使用する方法

よく使われるオプション

端末から始まるすべてのプロセスは、実行されたシェルからの子プロセスとしてシェルに結びついています。親プログラムが終了した場合、子プロセスも終了します。

ユーザーがリモートでプロセスを実行し、ログアウト後もそのプロセスを継続させる必要がある場合、これは特に望ましい動作ではありません。この理由から、nohupコマンドが存在します。Linuxのnohupコマンドは、プロセスが特定のシェルに結びつかないことを保証するため、ユーザーはログアウトすることでシェルプロセスを終了でき、nohupで実行されたプロセスは生き続けます。

以下の例を確認して、短時間でnohup Linuxコマンドをマスターしましょう。

Linuxにおけるnohupコマンドの例

  1. nohupコマンドを使用するには、通常通りコマンドを実行しますが、その前にnohupコマンドを置くだけです。ここでは、sleepコマンドをバックグラウンドに入れる例を示します。

    
    nohup sleep 10000 &
    [1] 1908
    nohup: ignoring input and appending output to 'nohup.out'
    

    ターミナルを閉じて再オープンし、その後、次のコマンドを実行しました。これにより、sleepコマンドがnohupのおかげでまだ実行中であることが示されます。

    
    ps aux | grep sleep
    linuxco+    1908  0.0  0.0   8084   524 ?        S    13:05   0:00 sleep 10000
    

    バックグラウンドジョブをfgコマンドでフォアグラウンドに持ってくることができることを忘れないでください。

    
    fg
    
  2. デフォルトでは、出力はnohup.outテキストファイルにリダイレクトされます。出力を別のファイルにリダイレクトしたい場合は、コマンドでファイル名を指定するだけです。

    
    nohup some_script.sh > output.txt
    
  3. 複数のコマンドをnohupで実行するには、bashコマンドを使用し、その後に実行したいさまざまなコマンドを入力します。

    
    nohup bash -c 'who && uptime'
    

注意<&47;b>
常にmanコマンドを使用してnohupコマンドとその公式ドキュメントについて詳しく読むことができます。前のリンクをクリックして、Linuxシステム上の任意のコマンドのマニュアルページを開く方法を確認してください。

締めくくりの考え

このチュートリアルでは、Linuxのnohupコマンドについて学びました。nohupコマンドは、ターミナルやBashシェルが閉じられてもコマンドを実行し続けるために使用される非常にシンプルなコマンドで、コマンドに送信されるハングアップ信号を無視します。通常、これはバックグラウンドでコマンドやスクリプトを実行し続けるためにアンパサンド&と組み合わせて使用されます。

関連記事: