额外信息

额外信息

我正在运行 Windows 10 Pro,版本 10.0.17134,启用了适用于 Linux 的 Windows 子系统并从 Microsoft Store 安装了 Ubuntu 应用程序。这已经运行了几个月,没有出现问题。

今天我想再次更新 Ubuntu 系统,但出现以下错误:

# apt-get update
FATAL -> Failed to fork.

搜索此错误后,我看到的唯一问题是可用内存不足,但如果我查看我的内存,我仍然有近 22 GB 的内存剩余:

# cat /proc/meminfo
MemTotal:       33341028 kB                                                     
MemFree:        21641608 kB                                                     
Buffers:           34032 kB                                                     
Cached:           188576 kB                                                     
SwapCached:            0 kB                                                     
Active:           167556 kB                                                     
Inactive:         157876 kB                                                     
Active(anon):     103104 kB                                                     
Inactive(anon):    17440 kB                                                     
Active(file):      64452 kB                                                     
Inactive(file):   140436 kB                                                     
Unevictable:           0 kB                                                     
Mlocked:               0 kB                                                     
SwapTotal:      60885884 kB                                                     
SwapFree:       60885884 kB                                                     
Dirty:                 0 kB                                                     
Writeback:             0 kB                                                     
AnonPages:        102824 kB                                                     
Mapped:            71404 kB                                                     
Shmem:             17720 kB                                                     
Slab:              13868 kB                                                     
SReclaimable:       6744 kB                                                     
SUnreclaim:         7124 kB                                                     
KernelStack:        2848 kB                                                     
PageTables:         2524 kB                                                     
NFS_Unstable:          0 kB                                                     
Bounce:                0 kB                                                     
WritebackTmp:          0 kB                                                     
CommitLimit:      515524 kB                                                     
Committed_AS:    3450064 kB                                                     
VmallocTotal:     122880 kB                                                     
VmallocUsed:       21296 kB                                                     
VmallocChunk:      66044 kB                                                     
HardwareCorrupted:     0 kB                                                     
AnonHugePages:      2048 kB                                                     
HugePages_Total:       0                                                        
HugePages_Free:        0                                                        
HugePages_Rsvd:        0                                                        
HugePages_Surp:        0                                                        
Hugepagesize:       2048 kB                                                                 
DirectMap4k:       12280 kB                                                     
DirectMap4M:      897024 kB

或者

# free -mh                                                   
              total        used        free      shared  buff/cache   available
Mem:            31G         10G         20G         17M        230M         21G
Swap:           58G        4.8M         58G                                                                                                            

有人知道可能存在什么问题或者可能的解决方案是什么吗?

谢谢!

额外信息

限制、正在运行的进程、打开的文件

root@somthing# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 40
file size               (blocks, -f) unlimited
pending signals                 (-i) 8041
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 8041
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

root@something# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 16:40 ?        00:00:00 /init ro
root         3     1  0 16:40 tty1     00:00:00 /init ro
kevinho+     4     3  0 16:40 tty1     00:00:00 -bash
root        26     4  0 16:43 tty1     00:00:00 sudo su
root        27    26  0 16:43 tty1     00:00:00 su
root        28    27  0 16:43 tty1     00:00:00 bash
root        49    28  0 17:03 tty1     00:00:00 ps -ef

root@something# lsof | wc -l
166

apt-get 的 Strace

参见 pastebin 上的文件:https://pastebin.com/zbjLbkGd

答案1

感谢您的所有帮助和意见,但在我自己的计算机上对进程进行更多搜索之后,我发现是其他原因。

受信任的应用程序模式卡巴斯基全方位安全软件应用程序阻止了易于二进制文件和其他要执行的文件。在我禁用该模式后,一切正常,因此如果您的 Windows Subsystem for Linux 上出现类似情况,最好检查主机基础 IPS(入侵防御系统)或其他类型的恶意软件/病毒扫描程序。

亲切的问候

数字哈希

答案2

由于没有“适用于 Linux 的 Windows 子系统”经验,我只能概括为“分叉失败”

这可能是(正如您调试的那样)由于内存引起的,但也可能是由于太多的进程、打开的文件或其他原因。

这是由 ulimit 控制的“软件”限制。使用 ulimit -a 查看所有最大值。

尝试 ps -ef 检查是否有(太多)进程正在运行。lsof 可以告诉您打开的文件的数量。

答案3

除了“适用于 Linux 的 Windows 子系统”并不比大多数其他 MS 产品更好这一事实之外,快速的 Google 会话还会显示以下内容:

通常,此消息表示 apt 进程内存不足。virtualmin 也关闭,这表明整个系统内存不足。很可能是数据库崩溃了。您可以在 /var/log/syslog 中查找内存不足消息以确认这一点。

我要做的第一件事(如果您还没有这样做的话)就是向服务器添加一个 SWAP 文件。

https://www.digitalocean.com/community/questions/etc-cron-daily-apt-fatal-failed-to-fork

答案4

编辑:正如@oligofren 所说,此特定链接/教程不适用于 Windows 子系统。但是,如果您使用的是 Ubuntu 系统,这应该可以工作。

这是一个老帖子,评论中的一些答案帮助我解决了这个问题。@Frank 提到了另一个论坛的正确引用。我需要创建一个 SWAP 文件来消除错误并使一切顺利运行。我遵循了 DigitalOcean 的这个指南:https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

相关内容