exec 3<>/dev/tcp/192.168.0.101/6435
192.168.0.101:6435とのTCP接続を確立するために使用しました。そして、pipe
コマンドとともにいくつかのメッセージを受信し、送信しました。
次に、TCP接続を終了します。しかし、ss -anpet
bash自体が子プロセスをフォークすることなくこの接続を保持していることがわかります。
シグナル9と15をbashプロセスに送信しようとしましたが、ご存じのとおり、bashは自分自身を殺すことはできません。
それで、使用しているPTSを終了せずに、確立したTCP接続を終了できますか(ルートで殺すこともCtrl + Dを送信することもできません)?
bash
確かに自分自身を殺すことができます-それは実際にはここでやりたいことではありません!
@TJMは、この魅力的な質問を他の人にとってより便利な
—
アリエル
pipe
ものにするために、使用しているコマンドについて詳しく説明してもらえますか?どのパッケージpipe
からのものですか?/dev/tcp/...
接続を介してデータを送受信するために、どの(例)パラメーターを渡すことができますか?ありがとう。
@arielf通常、私はコンピューターサイエンスの初心者であり、sedbotと呼ばれるbashシェルスクリプトからこのような使用法を見つけました。Githubで見つけることができます。はい、でファイルを
—
TJM
/dev/tcp
見つけることができません/dev/tcp
。ただし、pipe
この種のファイルとデータを送受信できるのは特別な使用法のようです。/dev/tcp/ip/port
tcp接続と/dev/udp/ip/port
udpパッケージに使用すると言われています。私の英語はあまり上手ではないので、適切に説明する方法がわかりません。質問を編集して回答を投稿してください。
@TJMありがとう。質問は
—
アリエル
pipe
あなたが言及したコマンドについてでした。私は見たhttps://github.com/clsr/sedbot/blob/master/sedbot.bash
。pipe
コマンドはありません。これは、2つの関数を定義します:readmsg
およびsendmsg
それぞれ、接続との間で読み取り/書き込みを行います。readmsg
用途IFS= read -r -u 3 -t "$READ_TIMEOUT" line
変数にファイルディスクリプタ3から読み取るためのline
、およびsendmsg
用途echo "$(date +%s.%N) >>> $line" >&4
とにかくファイルディスクリプタ4への書き込みには、これは完全な方法を明確にしています。「pipe
コマンド」の言及は、読者にとって依然として謎のままです。
bash
、そのシェルで殺すことができますか?