EPIPE (errno 32)
errno 32
Messaggio ufficiale (come appare sullo schermo): Broken pipe
Cercato anche come: Broken pipe, errno 32, EPIPE broken pipe, write EPIPE
Che cosa significa
EPIPE, «Broken pipe» (errno 32), significa che un programma ha scritto su una pipe o un socket il cui lato di lettura è già chiuso. Le pipeline di shell lo incontrano quando il comando successivo termina in anticipo (ad esempio 'head'), mentre i server lo vedono quando un client si disconnette prima dell'invio della risposta.
Si applica a: Linux, macOS (errno BSD), WSL, Container Docker
Come risolvere EPIPE (errno 32)
- Nelle pipeline di shell, una broken pipe dopo 'head' o 'grep -q' è prevista e di solito innocua
- Per le disconnessioni SSH con «Broken pipe», aggiungi 'ServerAliveInterval 60' a ~/.ssh/config per mantenere vive le sessioni inattive
- Nei server, gestisci EPIPE come una normale disconnessione del client: smetti di scrivere e chiudi la connessione
- In Python, intercetta BrokenPipeError; in Node.js gestisci gli eventi 'error' sugli stream per evitare crash
- Se EPIPE avviene su una connessione verso un database o un upstream, controlla i timeout di inattività di quel lato e attiva i keep-alive o la logica di riconnessione
- Se i programmi terminano in silenzio, ricorda che SIGPIPE termina i processi per impostazione predefinita; ignoralo ('signal(SIGPIPE, SIG_IGN)') e controlla invece gli errori di scrittura
Perché succede
Scrivere su una pipe o un socket di tipo stream senza lettore genera SIGPIPE ed EPIPE. Le cause abituali sono lettori che terminano in anticipo, client che si disconnettono, timeout sul lato remoto e middlebox di rete che chiudono le connessioni inattive.
Domande frequenti
Perché SSH dice «Broken pipe»?
La connessione era inattiva o la rete è caduta, e il server o un router l'ha chiusa. Le impostazioni keep-alive nella configurazione SSH evitano la maggior parte dei casi.
Errori correlati
Fonte: Linux kernel errno.h · soluzioni scritte e verificate dalla redazione (vedi la nostra politica editoriale)
Ultimo aggiornamento: