Ho un problema con node.js e caricamento di file sul server. Per caricare i file sul server io uso questo plugin . Quando si avvia il caricamento del file sul server il processo node.js
è bloccato e mostra un errore:
Errore: ENOSPC.
Il codice del server non viene eseguito.
$ df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.9G 4.1G 3.5G 55% / udev 288M 8.0K 288M 1% /dev tmpfs 119M 168K 118M 1% /run none 5.0M 0 5.0M 0% /run/lock none 296M 0 296M 0% /run/shm /dev/xvdf 9.9G 3.0G 6.5G 32% /vol overflow 1.0M 1.0M 0 100% /tmp
Esegui il comando seguente per evitare ENOSPC:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Per Arch Linux aggiungere questa riga a /etc/sysctl.d/99-sysctl.conf
:
fs.inotify.max_user_watches=524288
Quindi eseguire:
sysctl --system
Questo persisterà anche durante i riavvii.
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
ENOSPC
significa che non c’è spazio sull’unità.
Forse /tmp
è pieno? È ansible configurare npm
per utilizzare una cartella temporanea differente impostando npm config set tmp /path/to/some/other/dir
, o magari eliminare tutto dalla cartella /tmp
.
Fonte: npm 1.1.21 non può scrivere, ENOSPC nel repository di npm in github.
Nota Ho risolto il mio problema nel modo descritto nella fonte di cui sopra. Tuttavia, vedi la risposta di Murali Krishna in basso, che è più completa.
Non posso prenderne il merito, ma @grenade ha sottolineato che la npm dedupe
risolverà la causa (troppi file) e non il sintomo.
Fonte: errore dell’orologio Grunt – In attesa … Errore irreversibile: guardare ENOSPC .
Il riavvio della macchina ha risolto il problema per me. Ho provato prima a cancellare /tmp/
ma il nodo si stava ancora lamentando.
Ho risolto il mio problema uccidendo tutti i processi di controllo del tracker (potresti provare se usi GDM, ovviamente non è il tuo caso se lo script è in esecuzione su un server)
tracker-control -r
La mia configurazione: Arch con GNOME 3
Se il tuo /tmp
mount su un filesystem linux è montato come overflow (spesso dimensionato a 1MB), è probabile che tu non specifichi /tmp
come propria partizione e il tuo filesystem di root riempito e /tmp
sia rimontato come fallback.
Per risolvere il problema dopo aver eliminato lo spazio, basta smontare il fallback e dovrebbe rimontare al suo punto originale:
sudo umount overflow
Per quanto mi riguarda, ho raggiunto il numero massimo di file che un utente può possedere
Controlla i tuoi numeri con quota -s
e il numero in file non è troppo vicino alla quota