ทำไมฉันถึงได้รับWaiting...Fatal error: watch ENOSPC
เมื่อฉันทำภารกิจดู? ฉันจะแก้ปัญหานี้ได้อย่างไร
ทำไมฉันถึงได้รับWaiting...Fatal error: watch ENOSPC
เมื่อฉันทำภารกิจดู? ฉันจะแก้ปัญหานี้ได้อย่างไร
คำตอบ:
หลังจากทำวิจัยพบวิธีแก้ปัญหา เรียกใช้คำสั่งด้านล่าง
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
สำหรับ Arch Linux ให้เพิ่มบรรทัดนี้ใน /etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
fs.inotify.max_user_watches=524288
ไปแล้วรัน/etc/sysctl.d/99-sysctl.conf
sysctl --system
สิ่งนี้จะคงอยู่ตลอดการเรียบเครื่อง สำหรับรายละเอียดเพิ่มเติม: wiki.archlinux.org/index.php/Sysctl
npm dedupe
ล้างมันให้ฉัน ปัญหา
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
เขียนที่ส่วนท้ายของไฟล์ /etc/sysctl.conf บรรทัด "fs.inotify.max_user_watches = 524288" sudo sysctl -p
ตั้งค่าเคอร์เนลใหม่ขณะรันไทม์โหลดไฟล์ /etc/sysctl.conf เป็นพารามิเตอร์
เมื่อใดก็ตามที่คุณต้องการเรียกใช้sudo something ...
เพื่อแก้ไขบางสิ่งคุณควรหยุดคิดเกี่ยวกับสิ่งที่เกิดขึ้น ในขณะที่คำตอบที่ยอมรับได้ที่นี่ใช้ได้อย่างสมบูรณ์ แต่การรักษาอาการไม่ใช่ปัญหา Sorta เทียบเท่ากับการซื้อถุงอานขนาดใหญ่เพื่อแก้ปัญหาข้อผิดพลาดไม่สามารถโหลดขยะลงบนม้าได้ โพนี่มีขยะมากแล้วม้านั่นก็หมดสติ
ทางเลือกอื่น (อาจเทียบได้กับการทิ้งขยะส่วนเกินออกจากม้าและวางลงในกองขยะ) คือการเรียกใช้:
npm dedupe
จากนั้นไปแสดงความยินดีกับตัวเองที่ทำให้ม้ามีความสุข
sudo
และตอนนี้มันก็ใช้ได้สำหรับฉัน
fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
เช่นเดียวกับในคำตอบที่ได้รับการยอมรับ แต่ +1 สำหรับการสอนฉันnpm dedupe
หลังจากลองใช้คำตอบของระเบิดมือคุณสามารถใช้การแก้ไขชั่วคราว:
sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
สิ่งนี้ทำในสิ่งเดียวกันกับคำตอบของ kdsแต่ไม่มีการเปลี่ยนแปลงอย่างต่อเนื่อง สิ่งนี้มีประโยชน์หากข้อผิดพลาดเกิดขึ้นหลังจากระบบของคุณหยุดทำงาน
ในการค้นหาว่าใครเป็นคนสร้างอินสแตนซ์ให้ลองคำสั่งนี้ (ที่มา ):
for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr
ฉันดูเหมือนว่า:
25 /proc/2857/fd/anon_inode:inotify
9 /proc/2880/fd/anon_inode:inotify
4 /proc/1375/fd/anon_inode:inotify
3 /proc/1851/fd/anon_inode:inotify
2 /proc/2611/fd/anon_inode:inotify
2 /proc/2414/fd/anon_inode:inotify
1 /proc/2992/fd/anon_inode:inotify
ใช้ps -p 2857
ผมก็สามารถที่จะระบุกระบวนการ 2857 sublime_text
เป็น หลังจากปิดหน้าต่างประเสริฐทั้งหมดแล้วฉันสามารถเรียกใช้งานสคริปต์โหนดของฉันได้
ฉันพบข้อผิดพลาดนี้หลังจากที่พีซีไคลเอ็นต์ของฉันเกิดขัดข้องjest --watch
คำสั่งที่ฉันใช้อยู่บนเซิร์ฟเวอร์ยังคงอยู่และฉันพยายามที่จะเรียกใช้jest --watch
อีกครั้ง
นอกเหนือจากที่/etc/sysctl.conf
อธิบายไว้ในคำตอบข้างต้นได้แก้ไขปัญหานี้แล้ว แต่สิ่งสำคัญคือต้องค้นหากระบวนการเก่าของฉันผ่านทางps aux | grep node
และkill
มัน
ในกรณีของฉันมันเกี่ยวข้องกับ vs-code ที่ทำงานบนเครื่อง Linux ของฉัน ฉันไม่สนใจคำเตือนที่โผล่ขึ้นมาเกี่ยวกับตัวตรวจสอบไฟล์ bla bla วิธีแก้ไขอยู่บนหน้าเอกสาร vs-code สำหรับ linux https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-- นี้-ขนาดใหญ่พื้นที่ทำงานข้อผิดพลาด-ENOSPC
การแก้ปัญหาเกือบจะเหมือนกัน (ถ้าไม่เหมือนกัน) เป็นคำตอบที่ยอมรับมีเพียงคำอธิบายเพิ่มเติมสำหรับผู้ที่มาที่นี่หลังจากพบปัญหาจาก vs-code
ในกรณีของฉันฉันพบว่าฉันมีปลั๊กอินที่ก้าวร้าวสำหรับ Vim เพิ่งเริ่มต้นใหม่
grunt
แต่มีโปรแกรมใด ๆ ที่ใช้inotifyด้านล่าง มีคำอธิบายที่ดีที่เป็นunix.stackexchange.com/questions/13751/...