$ ls
bash: no more processes
Run Code Online (Sandbox Code Playgroud)
哦哦。看起来有人做了一个叉子炸弹。在我以前工作的地方,这几乎意味着共享服务器需要重新启动,因为即使是具有 root 权限的系统管理员也经常无法解决问题。通常,他们甚至无法得到提示。
我听说过一些技巧(特别是发送 STOP 信号而不是 KILL 信号,因为后者会让剩余的线程立即替换被杀死的线程),但我从未见过题为So, You Have Yourself的综合指南叉形炸弹?
让我们做一个。
我看到很多关于这个的问题,但我的似乎有点不同。
这是我收到的:
/etc/cron.weekly/apt-xapian-index:
FATAL -> Failed to fork.
run-parts: /etc/cron.weekly/apt-xapian-index exited with return code 100
Run Code Online (Sandbox Code Playgroud)
和
/etc/cron.daily/apt:
FATAL -> Failed to fork.
Run Code Online (Sandbox Code Playgroud)
和
/etc/cron.daily/apt:
DB Update failed, database locked
Run Code Online (Sandbox Code Playgroud)
我总是有至少 600 MB 的可用 RAM。如果我尝试手动运行sudo /etc/cron.daily/apt
什么也不会发生..shell 挂起。
可能是什么问题呢?
编辑: Ubuntu 服务器 14.04
我有一个脚本,它 rsync 是大约 10 个远程服务器的本地目录。它基本上有一个服务器列表,并通过它们中的每一个进行 rsync 循环。为了加快这个过程,我为每个 rsync 分叉,以便所有 10 个并行发生。问题是最后几台服务器返回“ssh_exchange_identification:连接被远程主机关闭”。单独或串行执行 rsync 时不会发生这种情况,并且在每个 rsync 之间放置半秒延迟可以解决问题(通常,有时列表中的最后一个服务器仍会返回错误)。
有谁知道为什么会发生这种情况?我认为这是 rysnc 的问题,而不是我的脚本,因为无论如何脚本只是对 rysnc 进行系统调用。