追加読書

追加読書

ここに画像の説明を入力してください。ctrl + Zとbgを介して実行中のプロセスを一時停止してプロセスをバックグラウンドに入れましたが、プロセスはまだフォアグラウンドで実行されているため、コマンドラインを使用できません。コマンドラインを使用できるようにプロセスを完全にバックグラウンドに配置するにはどうすればよいですか?

ベストアンサー1

端末の操作制御に関して、前景と背景が何を意味するのかを誤って理解しています。出力を表示できるかどうかに依存しません。

最終デバイス(より具体的にはライン規約)には次のものがあります。フォアグラウンドプロセスグループIDと関連付けられる。これは、ライン規約が標準モードにあるときに信号を送信し、信号にマッピングされた特殊文字の1つ(ライン規律に含まれる情報でもある)を受信するプロセスのグループを決定します。

ジョブ制御シェルは、シェルジョブを構成するプロセスにプロセスグループを割り当て、これらのプロセスグループとそれ自体のプロセスグループとの間で端末装置の前景プロセスグループを切り替えてタスク制御を行う。

デフォルトでは、これはこれらのプロセスの端末出力には影響しません。持つ単一tostopこれは、ラインルールでフラグをオンにすると(sttyまたはこれらのコマンドを使用して)出力に影響します。看板が点灯します。デフォルトではありません。 (私が知っている限り、2つの例外しかありません。一部のオペレーティングシステムではデフォルトの初期設定を設定できますが、本物端末(例:シリアルデバイスFreeBSDと私のもの。vc-reset-ttyツールは「正常」状態にリセットするとこのフラグを設定します。 )

したがって、出力を生成するシェルジョブを実行する場合〜するシェルの出力と混合されます。

オープンな選択肢はtostopここでは役に立ちません。出力を生成するシェル操作があります。続けて。明らかに出力中インタラクティブな進行状況を表示。端末操作制御がうまく機能しない継続的な対話型プログラム。 (逆にテキストエディタ(例)viとテキストファイルビューア(例)more続けてインタラクティブ。 )オプションは、tostop進行状況表示が他のプロセスの進行状況表示と混在するオフ、またはtostop進行状況表示によって進行状況が更新されるたびにプログラムが停止するようにすることです。

または、閉じた手で両方の端子を使用してください。

追加読書

おすすめ記事