如何在 Linux 中设置用户运行进程的限制
Linux 的优点之一是你几乎可以控制它的一切。这使系统管理员可以很好地控制他的系统并更好地利用系统资源。
虽然有些人可能从未考虑过这样做,但重要的是要知道在 Linux 中您可以限制单个用户可以使用多少资源以及多长时间。
另请阅读:如何增加 Linux 中打开文件的数量限制
在这个简短的主题中,我们将向您展示如何限制用户启动的进程数以及如何检查当前限制并修改它们。
在我们进一步讨论之前,我们需要指出两件事:
- 您需要系统的 root 访问权限才能修改用户限制
- 如果您打算修改这些限制,您必须非常小心
要设置用户限制,我们需要编辑以下文件:
/etc/security/limits.conf
该文件用于应用pam_module创建的ulimit。
该文件具有以下语法:
<domain> <type> <item> <value>
在这里我们将停下来讨论每个选项:
- 域 – 这包括用户名、组、guid 范围等
- 类型 – 软限制和硬限制
- 项目 – 将受到限制的项目 – 核心大小、文件大小、nproc 等
- 值 – 这是给定限制的值
限制的一个很好的样本是:
@student hard nproc 20
上面的行对 “student”
组设置了最多 20 个进程的硬性限制。
如果您想查看某个进程的限制,您可以简单地“cat”限制文件,如下所示:
cat /proc/PID/limits
其中PID是实际的进程ID,您可以使用ps命令找到进程ID。有关更详细的说明,请阅读我们的文章:查找正在运行的 Linux 进程并设置每个用户级别的进程限制
这是一个例子:
cat /proc/2497/limits
样本输出
Limit Soft Limit Hard Limit Units
Max cpu time unlimited unlimited seconds
Max file size unlimited unlimited bytes
Max data size unlimited unlimited bytes
Max stack size 8388608 unlimited bytes
Max core file size 0 unlimited bytes
Max resident set unlimited unlimited bytes
Max processes 32042 32042 processes
Max open files 1024 4096 files
Max locked memory 65536 65536 bytes
Max address space unlimited unlimited bytes
Max file locks unlimited unlimited locks
Max pending signals 32042 32042 signals
Max msgqueue size 819200 819200 bytes
Max nice priority 0 0
Max realtime priority 0 0
Max realtime timeout unlimited unlimited us
所有的线条几乎都是不言自明的。但是,如果您想查找更多可以在 limits.conf 文件中输入的设置,您可以查看此处提供的手册。
如果您有任何问题或意见,请随时在下面的评论部分提交。