J'ai utilisé exec 3<>/dev/tcp/192.168.0.101/6435
pour établir une connexion TCP avec 192.168.0.101:6435. Et j'ai reçu et envoyé quelques messages avec la pipe
commande.
Maintenant, je veux mettre fin à la connexion TCP. Mais, avec ss -anpet
je peux voir que bash lui-même détient cette connexion, sans bifurquer un processus enfant.
J'ai essayé d'envoyer les signaux 9 et 15 au processus bash, mais comme vous le savez, bash ne peut pas se tuer.
Alors, puis-je mettre fin à la connexion TCP que j'ai établie sans mettre fin aux pts que j'utilise (ni la tuer par root ni envoyer Ctrl + D)?
bash
peut certainement se tuer - bien que ce ne soit pas vraiment ce que vous voulez faire ici!
pipe
commande que vous utilisez et que je ne trouve pas sur mon système? De quel paquet pipe
vient-il? Quels (exemple) paramètres pouvez-vous lui transmettre pour envoyer / recevoir des données via la /dev/tcp/...
connexion? Merci.
/dev/tcp
, même je ne le trouve pas /dev/tcp
. Mais, il semble que vous puissiez envoyer / recevoir des données avec pipe
ce type de fichiers. On dit qu'il est utilisé /dev/tcp/ip/port
pour les connexions tcp et /dev/udp/ip/port
pour les packages udp. Car mon anglais n'est pas très bon, je ne sais pas comment l'expliquer correctement. N'hésitez pas à modifier la question et à poster une réponse.
pipe
commande que vous mentionnez. J'ai regardé https://github.com/clsr/sedbot/blob/master/sedbot.bash
. Il n'y a pas de pipe
commande là-bas. Il définit deux fonctions: readmsg
et sendmsg
lire / écrire depuis / vers la connexion respectivement. readmsg
utilise IFS= read -r -u 3 -t "$READ_TIMEOUT" line
pour lire du descripteur de fichier 3 dans la variable line
et sendmsg
utilise echo "$(date +%s.%N) >>> $line" >&4
pour écrire dans le descripteur de fichier 4. Quoi qu'il en soit, cela clarifie la méthode complète. La pipe
mention " commande" reste encore un mystère pour les lecteurs.
bash
avec cet obus?