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

nohup:コマンドが見つかりません

nohup (「ハングアップなし」) コマンドは、ユーザーがログオフしたときにプロセスが終了するのを防ぎます。たとえば、管理者がバックアップ スクリプトを起動してシステムからログオフすると、スクリプトは実行を停止します。通常のコマンドの前に nohup コマンドを配置すると、管理者がログオフした後でもスクリプトが続行されます。

構文

nohup コマンドの構文は次のとおりです。

# nohup {command/script}

nohup コマンドの実行中に以下のエラーが発生した場合:

nohup: command not found

選択したディストリビューションに従って、以下のパッケージをインストールしてみてください:

分布 コマンド
OS X brew install coreutils
Debian apt-get install coreutils
Ubuntu apt-get install coreutils
アルパイン apk add coreutils
Arch Linux pacman -S coreutils
カリ Linux apt-get install coreutils
CentOS yum install coreutils
Fedora dnf install coreutils
Raspbian apt-get install coreutils

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. サブスクリプション マネージャー:コマンドが見つかりません

  2. dnf:コマンドが見つかりません

  3. bc:コマンドが見つかりません

  1. id:コマンドが見つかりません

  2. w:コマンドが見つかりません

  3. df:コマンドが見つかりません

  1. du:コマンドが見つかりません

  2. rm:コマンドが見つかりません

  3. mv:コマンドが見つかりません