Debian

錯誤:僅在啟動/停止服務時設備上沒有剩餘空間

  • October 12, 2020

我知道已經有多個這樣的問題,但他們的答案都不適用於我的問題。

所以我嘗試從 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解決了問題。

引用自:https://serverfault.com/questions/708001