exec 3<>/dev/tcp/192.168.0.101/6435192.168.0.101:6435とのTCP接続を確立するために使用しました。そして、pipeコマンドとともにいくつかのメッセージを受信し、送信しました。
次に、TCP接続を終了します。しかし、ss -anpetbash自体が子プロセスをフォークすることなくこの接続を保持していることがわかります。
シグナル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/porttcp接続と/dev/udp/ip/portudpパッケージに使用すると言われています。私の英語はあまり上手ではないので、適切に説明する方法がわかりません。質問を編集して回答を投稿してください。
@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、そのシェルで殺すことができますか?