Ho usato exec 3<>/dev/tcp/192.168.0.101/6435
per stabilire una connessione TCP con 192.168.0.101:6435. E ho ricevuto e inviato alcuni messaggi con il pipe
comando.
Ora voglio terminare la connessione TCP. Ma, ss -anpet
vedo 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)?
bash
sicuramente può uccidersi, anche se in realtà non è quello che vuoi fare qui!
pipe
comando che stai usando e che non riesco a trovare sul mio sistema? Da quale pacchetto pipe
proviene? 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 pipe
e questo tipo di file. Si dice che usi /dev/tcp/ip/port
per le connessioni tcp e /dev/udp/ip/port
per 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.
pipe
comando che hai citato. Ho guardato https://github.com/clsr/sedbot/blob/master/sedbot.bash
. Non c'è nessun pipe
comando lì. Definisce due funzioni: readmsg
e sendmsg
leggere / scrivere rispettivamente dalla / alla connessione. readmsg
usa IFS= read -r -u 3 -t "$READ_TIMEOUT" line
per leggere dal descrittore di file 3 nella variabile line
e sendmsg
usa echo "$(date +%s.%N) >>> $line" >&4
per scrivere nel descrittore di file 4. Comunque, questo chiarisce il metodo completo. La pipe
menzione " comando" rimane ancora un mistero per i lettori.
bash
con quella shell?