1. ホーム
  2. スクリプト・コラム
  3. リナックスシェル

Linuxにおけるnohupとバックグラウンド実行プロセスの表示と終了

2022-01-05 18:39:01

nohupコマンドは、Command引数および関連するArg引数で指定されたコマンドを実行し、すべてのSIGHUPシグナルを無視します。nohupコマンドは、ログオフ後にバックグラウンドでプログラムを実行するために使用します。nohupコマンドをバックグラウンドで実行するには、コマンドの末尾に&("と"の記号)を追加してください。

1. ノウプ

目的 ハングアップせずにコマンドを実行する。

構文: nohup コマンド [ Arg ... ] [ & ]。

  nohupコマンドの出力を端末にリダイレクトしてもしなくても、出力はカレントディレクトリのnohup.outファイルに追記されます。

  現在のディレクトリの nohup.out ファイルが書き込み可能でない場合、出力は $HOME/nohup.out ファイルにリダイレクトされます。

  追加するファイルを作成できないか、または開くことができない場合、Commandパラメータで指定されたコマンドは起動されません。

終了ステータス このコマンドは、次の終了値を返します。    

126 Command パラメーターで指定されたコマンドが見つかりましたが、呼び出すことができません。    

127 nohupコマンドでエラーが発生したか、Commandパラメータで指定したコマンドが見つかりませ んでした。    

それ以外の場合、nohup コマンドの終了ステータスは Command パラメータで指定されたコマンドの終了ステータスとなります。

2. &

目的 バックグラウンドで実行される

通常、この2つは一緒に使用されます

nohup コマンド &

例えば

nohup /usr/local/node/bin/node /www/im/chat.js >> /usr/local/node/output.log 2>&1 &

プロセス番号 7585

実行中のバックグラウンドプロセスの表示

(1) jobs -l

ジョブズコマンドは、効果的に現在の端末を見て、端末を閉じた後、別の端末でジョブズは、もはやバックグラウンドの実行中のプログラムを見ることができないし、ps(プロセスビューコマンド)を使用します。

(2) ps -ef

ps -aux|grep chat.js

コピーコード コードは以下の通りです。
a:Show all programs
u:Display in user-dominated format
x:Show all programs, not differentiated by terminal

注意事項

  ps -def | grep でプロセスを見つけるのは簡単で、最後の行は常に grep 自体です

  grepコマンドは、grep -vパラメータで除外することができます。

ps -aux|grep chat.js| grep -v grep

  もう一度 awk を使って、プロセス ID を抽出します。 

ps -aux|grep chat.js| grep -v grep | awk '{print $2}'

3. プロセスが動作しない場合、ポートが占有されている可能性があります

あるポートを使用しているプロセスを確認するには

lsof -i:8090

netstat -ap|grep 8090

プロセスIDが表示されたら、netstatコマンドでどのポートを占有しているかを確認します。

netstat -nap|grep 7779

キルを使って街までキルしてスタート

4. バックグラウンドで動作しているプロセスを終了させる

kill -9 process number

上記は、Linuxでnohupとバックグラウンド実行プロセスのビューと終了の詳細です、nohupバックグラウンド実行についての詳細は、スクリプトの家の他の関連記事に注意を払うください