「yes&」がBashセッションを中断するのはなぜですか?

「yes&」がBashセッションを中断するのはなぜですか?

「はい、そして… 」は即興コメディの素晴らしい経験則です。 UNIXの世界ではそうではありません。

この愚かなコマンドを実行するとyes&中断できません。端末がクラッシュするか、ループに閉じ込められます。

yesstdoutに書き込もうとすると、バックグラウンドのすべてのプロセスが一時停止する必要があるため、プロセスがすぐに一時停止されるようにしたいのですが、そうでないようで、その理由を知りたいです。

ベストアンサー1

端末へのバックグラウンドプロセスの書き込みは、出力モードが設定されている場合にのみ一時停止されますが、デフォルトではそうではTOSTOPありません。努力する

stty tostop
yes &

yes一時停止したものが表示されます。

バックステージコース読むデフォルトでは、端末での操作は正しい入力を得るための合理的な方法がないため一時停止されます。

バラより端末アクセスのGNU Cライブラリマニュアルセクション

を閉じた後も、TOSTOP端末はクラッシュまたは中断されず、入力に応答します。したがって、端末yesを終了するか(kill %唯一のバックグラウンドジョブの場合)、フォアグラウンドにインポートしてfgCtrlC)停止してこれを実行できます。背景。盲目的にコマンドを入力する必要がありますが、うまくいきます。

おすすめ記事