私が期待するのはこれです:
nc -l localhost 7000 </dev/null &
nc localhost 7000 </etc/profile
この
nc -l localhost 7000 </etc/profile &
nc localhost 7000 </dev/null
印刷後は完了しますが、両方の/etc/profile
コマンドグループは中断されます(最初の場合は両方のプロセスが進行し、2番目の場合はサーバーは完了しますが、クライアントは完了しません)。
コマンドが完了していないのはなぜですか?
nc
これはmy / Linux(4.15)のバグですか? MacOSとCygwinで試しましたが、Linuxコマンドのみが完了していません。
答え1
私はgnu-netcatの代わりにnetcatを使用しています。どのバージョンを使用しているかはわかりませんが、gnu-netcatの場合はオプションが異なる場合があります。
私は-q
オプションがあります:
-q seconds
EOFを検出し、指定された時間(秒)待ってから終了します。
その場合は、次のようにしてください。
$ nc -l localhost -p 7000 -q 0 < /etc/passwd
以下は:
$ nc localhost 7000
/etc/passwd
その後、2番目の端末からコンテンツをインポートすると、両方のインスタンスがnc
終了します。