蟒蛇3.7 / Ubuntu 18.10
使用 pyinotify 设置手表时出现此错误。我尝试过的任何目录都会发生这种情况。
这是在我安装 pcloud 之后开始的,但 pcloud 没有触及这个目录。
pyinotify ERROR] add_watch: cannot watch
/home/stephen/<watchtarget> WD=-1, Errno=No space left on
device (ENOSPC)
df -h
显示没有安装接近满。
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev
tmpfs 1.6G 1.6M 1.6G 1% /run
/dev/sda2 219G 113G 95G 55% /
tmpfs 7.8G 40M 7.8G 1% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
/dev/sda1 511M 7.3M 504M 2% /boot/efi
/dev/sdd1 458G 87G 348G 20% /mnt/usb500
/dev/sdb1 1.8T 144G 1.6T 9% /mnt/usb2T
/dev/sdc1 293G 132G 147G 48% /mnt/usb250
tmpfs 1.6G 52K 1.6G 1% /run/user/1000
pCloud.fs 2.0T 106G 1.9T 6% /home/stephen/pCloudDrive
df -i
按照评论中的要求输出:
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 2029639 583 2029056 1% /dev
tmpfs 2037540 965 2036575 1% /run
/dev/sda2 14622720 537713 14085007 4% /
tmpfs 2037540 211 2037329 1% /dev/shm
tmpfs 2037540 5 2037535 1% /run/lock
tmpfs 2037540 18 2037522 1% /sys/fs/cgroup
/dev/sda1 0 0 0 - /boot/efi
/dev/sdd1 30531584 84224 30447360 1% /mnt/usb500
/dev/sdb1 122101760 205683 121896077 1% /mnt/usb2T
/dev/sdc1 19537920 547 19537373 1% /mnt/usb250
tmpfs 2037540 35 2037505 1% /run/user/1000
pCloud.fs 0 0 0 - /home/stephen/pCloudDrive
允许的最大手表数量:
sysctl -n fs.inotify.max_user_watches
8192
pgrep -f notify
仅显示一只手表。
答案1
本期的两点纯粹基于实验和观察。这是不是基于对 pCloud 代码的熟悉或对 pCloud 文档的广泛探索,但似乎:
pCloud不支持inotify(pyinotify是linux inotify应用程序的包装器),在这种情况下,通知进程的目标目录曾经被放入pCloudDrive中。
行为表明pCloud 保留对曾经包含在其驱动器中的文件的引用,并且要释放这些文件,必须终止所有 pCloud 进程。重新启动不起作用,因为 pCloud 通过系统重置保留其引用。
有必要终止所有 pCloud 进程,对我来说,完整的清理需要根帐户的干预。请注意,pCloud 进程运行为pcloud
和pCloud
(不同情况)
所以使用:
pgrep -fi pcloud | xargs kill
一旦 pCloud 进程被清除,您就可以启动手表了。然后您可以重新启动 pCloud,但它不会恢复其引用。