Linuxでバックグラウンドプロセスを管理する方法
10544 ワード
Linuxオペレーティングシステムに新しく、端末/セッションを使用してコマンドやプロセスを起動した場合、別のコマンドを開始する前にプロセスやコマンドが終了するまで待つ必要があることに注意してください.これは、セッションまたはターミナルを使用してコマンドを実行すると、デフォルトでフォアグラウンドで処理が開始されるためです.新しい端末を開くことなく別のコマンドを実行するにはどうすればよいですか?
このポストでは、Linuxでバックグラウンドとフォアグラウンドを管理する方法を示します.
しかし、その前に、前景プロセスと背景プロセスとは何かを理解することができます.
フォアグラウンドプロセスは、現在実行中のプロセスまたはジョブです.したがって、端末毎に1つだけのフォアグラウンドプロセスが存在します.現在のフォアグラウンドプロセスが新しいフォアグラウンドプロセスを開始する前に終了するまで待機する必要があります.
****現在のセッションで始まる任意のコマンドまたはプロセス
バックグラウンドプロセスは、バックグラウンドで実行されるプロセスまたはジョブであり、ユーザーからの対話を必要としません.明らかに1つ以上のバックグラウンドプロセスがある.
例:最も一般的な例は、あなたのウェブサーバです.
この例では、コマンドvmstat 1を起動します
上記のコマンドで
ここで注意することは、上記のコマンドがCPUの統計情報を端末に5秒おきに印刷するまで割り込みます.終了する場合は、CTL + Cキーを押すか、一時停止したり停止したりする場合は、CTL + Zキーを押します.
bg :ジョブをバックグラウンドに移動する
バックグラウンドに既に開始されているジョブを移動したい場合は、ターミナルキーCTL + Z * *にアクセスでき、* * bg
コマンドの下でフォアグラウンドでジョブを開始します.ここでは、テキストファイルにCPUの統計情報を書いています.ご覧の通り、フォアグラウンドで走っているので、新しいコマンドを起動できません.
コマンドを開始し、バックグラウンドで実行する方法
コマンドを開始し、バックグラウンドで実行する
Job :ジョブステータスをチェックするコマンド
このコマンドは、現在の端末
仕事のための異なるオプション
- l :通常の情報に加えてIDをリスト表示する
- n :最後からステータスを変更したプロセスのみをリストする
通知
- p :プロセスIDのみをリスト表示する
- r :出力を実行中のジョブに制限する
- s :出力を停止したジョブに制限する
kill % N :ジョブIDを使用してジョブを殺す
killコマンドを使用してジョブをkillします.%はジョブIDまたはジョブ番号を示すために使用されます
FG :ジョブを前景へ動かすコマンド
* FG *コマンドを使用してジョブを前景に移動します.デフォルトでは、それはフォアグラウンドに最も最近のバックグラウンドジョブをもたらすでしょう
psコマンドすべてのプロセスを見る
psコマンドを使用してアクティブなプロセスを確認します.
オプションの使用
ps ax :システム内で現在アクティブになっているすべてのプロセスを見るために(前の記事を使ってリアルタイムプロセスのコマンドをチェックします).これは非常に長いリストになりますので、以下のパラメータを使用します
ps t :現在の端末で実行中のすべてのプロセスを一覧表示する
結論
それで、このポストでは、我々はバックグラウンドとフォアグラウンドプロセスを管理するために、異なるコマンドを学びました.我々は学んだ
- bgとfgをバックグラウンドとフォアグラウンドにジョブを移動させる.
- jobコマンド現在の端末でアクティブなすべてのジョブを一覧表示する.
- kill killコマンドを実行します.
- ps commandすべてのアクティブで実行中のプロセスのリストを見る
また、バックグラウンドで仕事を始める方法を学びました.あなたがリアルタイムメモリとCPU使用を知っていて、あなたのシステムで動いているすべてのプロセスをコントロールしたいならば、私の最後のポストhttps://shaikhu.com/how-to-monitor-cpu-utilization-in-linux-ckgcp9gex07g8pas1ees0hz7tをチェックしてください
このポストでは、Linuxでバックグラウンドとフォアグラウンドを管理する方法を示します.
しかし、その前に、前景プロセスと背景プロセスとは何かを理解することができます.
フォアグラウンドプロセスは、現在実行中のプロセスまたはジョブです.したがって、端末毎に1つだけのフォアグラウンドプロセスが存在します.現在のフォアグラウンドプロセスが新しいフォアグラウンドプロセスを開始する前に終了するまで待機する必要があります.
****現在のセッションで始まる任意のコマンドまたはプロセス
バックグラウンドプロセスは、バックグラウンドで実行されるプロセスまたはジョブであり、ユーザーからの対話を必要としません.明らかに1つ以上のバックグラウンドプロセスがある.
例:最も一般的な例は、あなたのウェブサーバです.
この例では、コマンドvmstat 1を起動します
shaikh@shaikhu-com:~$ vmstat 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 3045156 167484 2449380 0 0 80 56 469 1138 19 5 76 0 0
1 0 0 3044644 167492 2450152 0 0 0 92 299 604 2 1 98 0 0
VMSTATは、リアルタイムメモリ使用量とCPUのユーティリティを表示するコマンドです.あなたがそれについてもっと知りたいならば、私の前のポストhereを訪問してください上記のコマンドで
ここで注意することは、上記のコマンドがCPUの統計情報を端末に5秒おきに印刷するまで割り込みます.終了する場合は、CTL + Cキーを押すか、一時停止したり停止したりする場合は、CTL + Zキーを押します.
bg :ジョブをバックグラウンドに移動する
バックグラウンドに既に開始されているジョブを移動したい場合は、ターミナルキーCTL + Z * *にアクセスでき、* * bg
コマンドの下でフォアグラウンドでジョブを開始します.ここでは、テキストファイルにCPUの統計情報を書いています.ご覧の通り、フォアグラウンドで走っているので、新しいコマンドを起動できません.
shaikh@shaikhu-com:~$ vmstat 5 >> vmstat.txt
このジョブを一時停止してからbgshaikh@shaikhu-com:~$ vmstat 5 >> vmstat.txt
^Z
[1]+ Stopped vmstat 5 >> vmstat.txt
shaikh@shaikhu-com:~$ bg
[1]+ vmstat 5 >> vmstat.txt &
shaikh@shaikhu-com:~$
今すぐバックグラウンドで実行しているジョブと我々は端末を得たコマンドを開始し、バックグラウンドで実行する方法
コマンドを開始し、バックグラウンドで実行する
command &
例:shaikh@shaikhucom:~$ sleep 400 &
[2] 11122
shaikh@shaikhucom:~$
Job :ジョブステータスをチェックするコマンド
このコマンドは、現在の端末
shaikh@shaikhucom:~$ jobs
[1]- Running vmstat 5 >> vmstat.txt &
[2]+ Running sleep 400 &
shaikh@shaikhucom:~$
ここで括弧括弧は[ n ]はジョブIDかジョブ番号であり、+は最近のコマンドかジョブを示します.プロセスIDが- lオプションを使用するのを見たい場合shaikh@shaikhucom:~$ jobs -l
[1]- 10216 Running vmstat 5 >> vmstat.txt &
[2]+ 11122 Running sleep 400 &
shaikh@shaikhucom:~$
番号10216と11122はプロセスIDである仕事のための異なるオプション
- l :通常の情報に加えてIDをリスト表示する
- n :最後からステータスを変更したプロセスのみをリストする
通知
- p :プロセスIDのみをリスト表示する
- r :出力を実行中のジョブに制限する
- s :出力を停止したジョブに制限する
kill % N :ジョブIDを使用してジョブを殺す
killコマンドを使用してジョブをkillします.%はジョブIDまたはジョブ番号を示すために使用されます
haikh@shaikhu-com:~$ jobs
[1]- Running vmstat 5 >> vmstat.txt &
[2]+ Running sleep 400 &
shaikh@shaikhucom:~$ kill %2
shaikh@shaikhucom:~$ jobs
[1]+ Running vmstat 5 >> vmstat.txt &
shaikh@shaikhucom:~$
今見ることができるように、我々はバックグラウンドで実行されているジョブだけを持っており、ジョブID🙂FG :ジョブを前景へ動かすコマンド
* FG *コマンドを使用してジョブを前景に移動します.デフォルトでは、それはフォアグラウンドに最も最近のバックグラウンドジョブをもたらすでしょう
shaikh@shaikhucom:~$ jobs
[1] Running vmstat 5 >> vmstat.txt &
[2]- Running sleep 400 &
[3]+ Running sleep 500 &
shaikh@shaikhucom:~$ fg
sleep 500
[2] Done sleep 400
shaikh@shaikhucom:~$
バックグラウンドで複数のジョブを実行している場合、% nを使用して特定のジョブをフォアグラウンドに移動しますshaikh@shaikhucom:~$ fg %2
psコマンドすべてのプロセスを見る
psコマンドを使用してアクティブなプロセスを確認します.
オプションの使用
ps ax :システム内で現在アクティブになっているすべてのプロセスを見るために(前の記事を使ってリアルタイムプロセスのコマンドをチェックします).これは非常に長いリストになりますので、以下のパラメータを使用します
ps t :現在の端末で実行中のすべてのプロセスを一覧表示する
shaikh@shaikhucom:~$ ps T
PID TTY STAT TIME COMMAND
5786 pts/0 Ss 0:00 bash
10216 pts/0 S 0:00 vmstat 5
12983 pts/0 R+ 0:00 ps T
shaikh@shaikhucom:~$
結論
それで、このポストでは、我々はバックグラウンドとフォアグラウンドプロセスを管理するために、異なるコマンドを学びました.我々は学んだ
- bgとfgをバックグラウンドとフォアグラウンドにジョブを移動させる.
- jobコマンド現在の端末でアクティブなすべてのジョブを一覧表示する.
- kill killコマンドを実行します.
- ps commandすべてのアクティブで実行中のプロセスのリストを見る
また、バックグラウンドで仕事を始める方法を学びました.あなたがリアルタイムメモリとCPU使用を知っていて、あなたのシステムで動いているすべてのプロセスをコントロールしたいならば、私の最後のポストhttps://shaikhu.com/how-to-monitor-cpu-utilization-in-linux-ckgcp9gex07g8pas1ees0hz7tをチェックしてください
Reference
この問題について(Linuxでバックグラウンドプロセスを管理する方法), 我々は、より多くの情報をここで見つけました https://dev.to/shaikh/how-to-manage-background-processes-in-linux-1d2mテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol