Debian
錯誤:僅在啟動/停止服務時設備上沒有剩餘空間
我知道已經有多個這樣的問題,但他們的答案都不適用於我的問題。
所以我嘗試從 Debian 7.7 升級到 Debian 8.1。一切正常,但某些操作報告
Error: No space left on device
。df -h
Filesystem Size Used Avail Use% Mounted on /dev/sda1 443G 28G 393G 7% / udev 10M 0 10M 0% /dev tmpfs 1.6G 8.7M 1.6G 1% /run tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup tmpfs 795M 0 795M 0% /run/user/0
df -i
Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda1 29450240 419083 29031157 2% / udev 1015256 338 1014918 1% /dev tmpfs 1017372 502 1016870 1% /run tmpfs 1017372 1 1017371 1% /dev/shm tmpfs 1017372 7 1017365 1% /run/lock tmpfs 1017372 13 1017359 1% /sys/fs/cgroup tmpfs 1017372 4 1017368 1% /run/user/0
錯誤消息範例:
$: service apache2 restart Error: No space left on device $: /etc/init.d/mysql restart [....] Restarting mysql (via systemctl): mysql.serviceError: No space left on device
我還可以在
/tmp
.ls -al
:drwxrwxrwt 8 root root 4096 Jul 23 18:47 tmp
我該如何繼續嘗試調試或弄清楚這裡發生了什麼?我懷疑
/tmp
目錄有問題,但我不知道是什麼。
經過多次調試,我在unix.SE的另一個 SE 答案中找到了答案。
事實證明,這個錯誤是因為 inotify 的觀察者太少而被觸發的。就我而言,這個問題沒有記錄在系統任何地方的任何錯誤日誌中。
只需編輯文件
/etc/sysctl.conf
添加:fs.inotify.max_user_watches = 262144
…然後執行
sysctl -p
解決了問題。