Linuxプロセスで作業するときに理解する重要な概念は、前景とは何かです。 および背景 プロセスとそれらを制御する方法。 Linuxでは、プログラムを実行すると、プロセスは一意の IDで作成されます。 ( PID )デフォルトでは、プロセスはフォアグラウンドで実行されます 。
簡単なcurlコマンドを見てみましょう –インターネット経由でzipファイルをダウンロードするリクエストを送信する場合、 curl フォアグラウンドとして実行されます プロセスとすべての出力が端末に表示されます。
背景を操作する前に理解する必要がある2つの重要なキーストロークがあります およびフォアグラウンド プロセス。
- CTRL + Z –このキーストロークにより、実行中のプロセスが停止します。
- CTRL + C –このキーストロークは、実行中のプロセスを強制終了し、RAMのメモリを解放します。
Linuxフォアグラウンドプロセス
デフォルトでターミナルから開始するプロセスは、フォアグラウンドとして実行されます 処理する。 前景 プロセスは、プロセスが完了しない限り、端末を使用することを許可しません。この場合、ターミナルに戻る必要がある場合は、新しいターミナルウィンドウを開くか、実行中のプロセスを停止するか、プロセスを強制終了する必要があります。
また、端末を介して作成されたプロセスはすべて端末セッションに接続され、端末が閉じられるとプロセスが終了することに注意することも重要です。これは、bashが親プロセスであり、ターミナルで実行するコマンドはすべてbashの子プロセスになるため、ターミナルの親プロセスを閉じると(bash) すべての子プロセスとそれ自体を自動的に終了します。
以下は、フォアグラウンドプロセスの例です。これは単純な<strong>スリープコマンドです これにより、完了後にのみプロンプトがユーザーに返されます。
$ sleep 10000
これで、ターミナルプロンプトに戻るための制御を取得するためのオプションがいくつかあります。プロセスをキャンセルまたは停止するか、新しいターミナルタブを開く必要があります。 (CTRL + Z)を押して実行中のプロセスを停止した場合 下の画像に示すような出力が得られます。
実行中または停止状態のジョブのリストを取得するには、以下のコマンドを実行できます。
$ jobs -l </ pre>上の画像から、ジョブコマンドを確認できます。 プロセスIDを提供します 、送信したコマンド、そのステータスは何ですか。また、送信するすべてのプロセス([1]、[2] [3]など)のジョブIDを取得します。
停止状態のジョブを開始するか、バックグラウンドジョブをフォアグラウンドにするには、次のコマンドを実行します。
$ fg%4ここで%4 「jobs-l」コマンドから取得できるジョブIDを示します。
Linuxバックグラウンドプロセス
バックグラウンドプロセスはプロセスをバックグラウンドで実行し、ターミナルプロンプトを制御しません。セッションを開始でき、端末を自由に使用できます。バックグラウンドプロセスとしてコマンドを送信するには、
&
を追加する必要があります コマンドの最後にある記号。$ sleep 50000&jobsコマンドを実行して、ジョブのリストを取得します。
$ jobs -l </ pre>下の画像から、ジョブID [5]を確認できます。 ジョブと
&
に割り当てられます 記号は、送信され、バックグラウンドジョブとして実行されていることを示します。次のコマンドを実行すると、停止したジョブをバックグラウンドで直接開始できます。
$ bg%2ここで%2 「jobs-l」から取得できるジョブIDを示します 」コマンド。
この記事は以上です。フィードバックや提案がある場合は、コメントボックスに残してください。
Linux