
UNIXのようなシステムでは、複数のプロセスを同時に処理する必要がある場合、タスクを効率的に管理することが重要です。「ジョブコントロール」の概念を使用すると、バックグラウンドでプロセスを実行し、必要に応じてそれらを前景に持ち込むことができます。 FG コマンドは、この目的のための役立つツールです。これにより、システム内で静かに走っていたバックグラウンドプロセスを最前線に持ち込むことができ、そこで直接対話できます。これは、一時停止またはバックグラウンドに送信されたプロセスで作業を再開する必要がある場合に役立ちます。FGコマンドを使用すると、ワークフローを中断することなくシステムタスクを簡単に管理できるようにすることで、生産性が向上します。たとえば、Ctrl + Zで背景にタスクを送信し、他のタスクの端末を解放し、後でFGを使用してそのタスクを前景に戻すことができます。このコマンドは、Kornシェル(KSH)やPOSIXに準拠したシェルなど、ほとんどのUNIXベースのシェルに組み込まれており、異なるシステムで広く利用可能です。FGの使用を含むジョブコントロールは、ターミナル内のマルチタスクがある状況で重要です。終了するのに時間がかかる長いスクリプトを実行することを想像してください。それが完了するのを待つ代わりに、それを背景に送り、他の何かに取り組み続け、後でFGで持ち帰ることができます。これにより、重要なプロセスを追跡することなく、構造化された効率的な方法で複数のタスクを処理できます。
FG コマンドは簡単に使用できますが、その構文とジョブを適切に識別する方法を知ることは、効果的に機能するために重要です。基本的な構文は次のとおりです。
fg [jobid]
[jobid] フォアグラウンドに持ち込む背景タスクをシステムに伝える方法です。このジョブIDを指定する方法はいくつかあります。たとえば、使用できます %番号 そのような数値識別子によってジョブを参照するには %1 最初の仕事のために。または、指定することで、ジョブの名前の一部を使用できます %弦、または、使用して特定のサブストリングを含むジョブを検索することさえ %?弦。最近一時停止した仕事を前景に持ち込みたい場合は、単に使用できます FG ジョブIDを指定せずに。例を見てみましょう。呼ばれるバックグラウンドプロセスを実行していると想像してください 睡眠100 (これにより、システムは100秒間待機します)。使用できます 仕事 アクティブなバックグラウンドタスクをリストするコマンドで、次のようなものを表示する可能性があります。
[1] +睡眠を実行する100&
このプロセスを前景に持ち込むには、入力します FG%1。複数のジョブがある場合は、正しいジョブIDを使用して、誤って間違ったプロセスを前景にもたらさないようにする必要があります。使用 FG 混乱や中断なくタスクをシームレスに切り替えることができるようにします。インタラクティブなタスクを扱うとき、プロセスを前景に持ち込む方法を知ることが重要です。たとえば、プロセスが入力を必要とする場合、応答するにはフォアグラウンドでそれを必要とします。使用せずに FG、バックグラウンドプロセスと対話するには、他のタスクを停止したり、新しいターミナルセッションを開いたりする必要があります。したがって、ジョブコントロールをマスターすると、ワークフローがスムーズで効率的になります。
FGコマンドを使用する場合、出口コードを介してシステムがどのように応答するかを理解することが重要です。これらのコードは、コマンドが正常に実行されたのか、それとも問題があるかを知るのに役立ちます。FGコマンドの実行の成功は0の出口コードを返します。つまり、バックグラウンドジョブは問題なく前景に持ち込まれました。ただし、たとえばエラーがある場合、ジョブコントロールが無効になっているときにジョブコントロールが0を超える出口コードを返すと、ジョブコントロールを前景に持ち込もうとする場合、何かがうまくいかなかったことを示します。
場合によっては、シェル環境ではジョブコントロールが無効になる場合があります。これが発生すると、FGを使用しようとするとエラーが発生します。ジョブコントロールがなければ、バックグラウンドタスクを前景に移動することはできません。これにより、マルチタスクとシステムの効率が制限されます。したがって、特に複数のプロセスを管理することが一般的な環境で、UNIXのようなシステムで作業するときに、ジョブコントロールが有効になるようにする必要があります。これが実際にどのように機能するかを確認するには、次のシナリオを検討してください。Ctrl + Zを使用して一時停止した長期にわたる背景タスクがあります。FGコマンドを使用しようとしますが、ジョブコントロールが無効になっているためエラーが返されます。この状況は、FGなどのコマンドを使用しようとする前に、システム構成をチェックし、ジョブコントロールがアクティブであることを確認することの重要性を強調しています。
方法を確認するために簡単な例を見てみましょう FG 実際には機能します。呼ばれるプロセスを実行していると想像してください 睡眠100、システムが100秒間一時停止します。それが終了するのを待つ代わりに、あなたはタイピングによってそれを背景に送ることにしました:
睡眠100&
これで、タスクはバックグラウンドで実行されており、端末を使用し続けることができます。どの背景タスクが実行されているかを確認するには、 仕事 アクティブなジョブのリストを表示するコマンド。あなたはこのようなものを見ます:
[1] +睡眠を実行する100&
このタスクを前景に戻したい場合は、次のように入力するだけです。
FG%1
これを行うと、タスクは前景に移動し、端子はプロセス名を表示し、アクティブなタスクであることを示します。プロセスを前景にすることは、それとやり取りする必要がある場合、または時間内にその進捗を確認する必要がある場合に役立ちます。たとえば、タスクが入力または調整を必要とする場合、それを前景に持ち込むと、直接それを行うことができます。これにより、FGはワークフローを中断することなく、タスクを効率的に管理するための貴重なツールになります。
コーンシェル (ksh) 多くのUNIXベースのシステムで使用される一般的なコマンドラインインターフェイスです。ジョブコントロールの組み込みサポートを提供し、そのコア機能の一部としてFGコマンドを含みます。この統合により、シェルから背景タスクと前景タスクを直接管理できるようになり、外部ツールに頼らずにマルチタスクの処理が容易になります。コーンシェルの重要な機能の1つは、スクリプト機能です。繰り返しタスクを自動化するスクリプトを記述できます。FGコマンドをこれらのスクリプト内で使用して、バックグラウンドプロセスを管理できます。たとえば、スクリプトはバックグラウンドでプロセスを開始し、他のタスクを実行し、入力が必要なときに背景プロセスを前景にもたらす場合があります。この柔軟性により、Korn Shellはシステム管理者にとって強力なツールになり、複雑なワークフローを管理する必要があります。KornシェルのFGの組み込みバージョンに加えて、にあるコマンドのスタンドアロンバージョンもあります /usr/bin/fg。これにより、さまざまなシェル環境でコマンドを使用できるようになり、使用中のシェルに関係なく一貫した動作が確保されます。
お問い合わせを送ってください、すぐに返信します。
01/9/2025で公開されています
01/9/2025で公開されています
04/19/8000で公開されています 147783
04/19/2000で公開されています 112073
04/19/1600で公開されています 111352
04/19/0400で公開されています 83831
01/1/1970で公開されています 79646
01/1/1970で公開されています 67013
01/1/1970で公開されています 63136
01/1/1970で公開されています 63067
01/1/1970で公開されています 54099
01/1/1970で公開されています 52229