ファイルを scp すると、^Z で停止してバックグラウンドに置くことができます。バックグラウンドにある場合、進行状況の印刷は停止しますが、コピーは続行されます。もう一度フォアグラウンドにすると、印刷が再開されます。それはどのように知っていますか?シットトゥ?それは標準の ptty で起こりますか?
2 に答える
2
はい、わかりました。プロセスは SIGTTOU をトラップまたは無視し (そして、何をしているかによっては SIGTTIN も)、それらのシグナルを受信したときに適切に動作します。Linux は実際にこれらのシグナルを通常の疑似端末で送信します。
于 2009-06-16T15:02:04.580 に答える
1
私の同僚と私は実際にソースを調べて答えを見つけました。
scp が出力を印刷しようとするときはいつでも、stdout で tcgetpgrp を実行します。これは、端末の制御プロセス グループを返します (端末であると仮定します)。端末を制御するプロセスグループがscpのプロセスグループと同じ場合にのみ出力されます。シグナリングは必要ありません。(ただし、進行状況の行のサイズを計算するために SIGWINCH を処理します)。
于 2009-06-16T16:06:11.763 に答える