Ho usato exec 3<>/dev/tcp/192.168.0.101/6435per stabilire una connessione TCP con 192.168.0.101:6435. E ho ricevuto e inviato alcuni messaggi con il pipecomando.
Ora voglio terminare la connessione TCP. Ma, ss -anpetvedo che bash stesso mantiene questa connessione, senza biforcarsi un processo figlio.
Ho provato a inviare i segnali 9 e 15 al processo bash, ma come sai, bash non può uccidersi.
Quindi, posso terminare la connessione TCP che ho stabilito senza terminare i punti che sto usando (né ucciderlo per root né inviare Ctrl + D)?
bashsicuramente può uccidersi, anche se in realtà non è quello che vuoi fare qui!
pipecomando che stai usando e che non riesco a trovare sul mio sistema? Da quale pacchetto pipeproviene? Quali parametri (esempio) è possibile passare ad esso per inviare / ricevere dati tramite la /dev/tcp/...connessione? Grazie.
/dev/tcp, nemmeno a trovarmi /dev/tcp. Tuttavia, sembra un uso speciale con cui è possibile inviare / ricevere dati pipee questo tipo di file. Si dice che usi /dev/tcp/ip/portper le connessioni tcp e /dev/udp/ip/portper i pacchetti udp. Per il mio inglese non è molto buono, non so come spiegarlo correttamente. Sentiti libero di modificare la domanda e pubblicare una risposta.
pipecomando che hai citato. Ho guardato https://github.com/clsr/sedbot/blob/master/sedbot.bash. Non c'è nessun pipecomando lì. Definisce due funzioni: readmsge sendmsgleggere / scrivere rispettivamente dalla / alla connessione. readmsgusa IFS= read -r -u 3 -t "$READ_TIMEOUT" lineper leggere dal descrittore di file 3 nella variabile linee sendmsgusa echo "$(date +%s.%N) >>> $line" >&4per scrivere nel descrittore di file 4. Comunque, questo chiarisce il metodo completo. La pipemenzione " comando" rimane ancora un mistero per i lettori.
bashcon quella shell?