我想知道linux中的Process是否有限制。能吃饱吗?如果是这样的话,我应该做些什么来创造空间(可能尝试删除僵尸进程的条目)?
发布于 2020-05-14 23:40:33
运行sysctl kernel.pid_max kernel.threads-max分别查看进程和线程的当前最大限制。(每个进程至少占用一个线程;如果是多线程,则更多。)
在面向桌面的发行版上,“工厂默认”进程限制可能是32768,或者在面向企业的发行版中更高。在现代64位系统中,可以使用/etc/sysctl.conf将限制提高到4194304 (至少)。
(内核版本3.10.25中的最大值为4194304;此后可能会进一步增加。)
您不能删除僵尸进程,它们已经死了。您应该做的是杀死邪恶的僵尸主人,即僵尸的父进程,因为僵尸的存在表明父进程没有正确地完成它的工作。一旦疏忽的父进程被杀死,僵尸将被进程#1所采用,这通常会立即清除它们。
父进程应该总是在被通知其子进程已死时检查其子进程的返回代码,或者应该安排子进程在启动时被不承认,这样进程#1 (通常是/sbin/init)可以采用它们。流程1有特别的责任采用任何否则没有父母的进程,并照顾他们的死亡通知。
https://unix.stackexchange.com/questions/586723
复制相似问题