GNU/Linux >> Linux の 問題 >  >> Linux

Nohup コマンドの例 – ログアウト後も実行し続けるコマンドを実行する

nohup ユーティリティは、ログアウト後もコマンドが実行され続けるようにコマンド ラインを実行します。つまり、nohup はプロセスに SIGHUP シグナルを無視させます。ローカル シェルの構成方法によっては、nohup なしで開始され、バックグラウンドで実行されているプロセスが、ログアウト時に強制終了される場合があります。

nohup コマンドを実行するための構文

nohup コマンドを実行するための基本的なコマンド構文は次のとおりです。

# nohup command_with_options &

で特に指定しない限り、ジョブからの出力はすべて「 nohup.out 」というファイルにリダイレクトされます。

# nohup command > myout.file 2>&1

これにより、すべての出力がファイル myout.file に送信されます。

nohup コマンドの出力を保存する

nohup を使用して実行するコマンドからの出力をリダイレクトしない場合、標準出力と標準エラーの両方が nohup.out という名前のファイルに送信されます。 作業ディレクトリにあります。作業ディレクトリへの書き込み権限がない場合、nohup は出力を ~/nohup.out に送信します。 .

上記のコマンドの構文で示したように、指定した他のファイルに出力を送信することもできます。

1.出力ファイルを指定せずに nohup を実行する

例を挙げて、ログアウトした後も実際に動作し続けることをテストしてみましょう。 script.sh というスクリプトを開始します。スクリプトの内容は次のとおりです:

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

nohup コマンドを使用して backgroupd でスクリプトを実行しましょう:

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

上記のように、出力ファイルを指定していません。したがって、デフォルトでは、標準出力と標準エラーは、スクリプトが呼び出されたディレクトリ内の nohup.out ファイルに入ります。 179 という数字も ジョブのプロセスID(PID)を指定。この PID は、以下に示すように「ps -ef」コマンド出力で確認できます。

シェルを終了し、再度ログインして、次のコマンドを実行します:

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

スクリプトはまだ機能しています。 「ps -ef |」を使用します。システムが ps x をサポートしていない場合は、grep ps1」を実行します。さらに確認するために、出力ファイル nohup.out をチェックすることもできます。

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
注意 :nohup を使用して別のコマンドを実行すると、出力は既存の nohup.out ファイルに追加されます。同じディレクトリから複数のコマンドを実行する場合は注意してください。すべての出力が同じ nohup.out ファイルに送信されるため、混乱を招く可能性があります。

出力ファイルを指定して nohup を実行する

上記のスクリプトは、nohup コマンドを実行して、以下に示すようにカスタム出力ファイルを指定することもできます:

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

結論

プロセスを実行していて、その日のログアウト時までにプロセスが完了しないと思われる場合は、nohup コマンドを使用します。 Nohup は、アカウントを終了しても処理を続行します。 Nohup は電話を切らないことを意味します .


Linux
  1. 12 UNIX / Linux 時刻コマンド出力形式オプション例

  2. ssh からログアウトした後もプログラムを実行し続けるにはどうすればよいですか?

  3. Linuxコマンド出力をファイルに出力するには?

  1. 例を含むNohupコマンド

  2. SSHセッションからログアウトした後もコマンドを実行し続ける4つの方法

  3. Linuxで特定のプロセスを実行しているCPUコアを見つける4つの方法

  1. 初心者向けのLinuxpinkyコマンドチュートリアル(8例)

  2. 20OpenSSLコマンド知っておくべき例

  3. 入力したすべてのコマンドをログに記録するにはどうすればよいですか?