如何在 Linux 中设置用户运行进程的限制
Linux 的优点之一是你可以控制几乎所有东西。这使系统管理员能够很好地控制系统并更好地利用系统资源。
虽然有些人可能从未想过这样做,但重要的是要知道在 Linux 中你可以限制单个用户可以使用的资源量和使用时间。
另请参阅: 如何增加 Linux 中打开文件数限制
在这个简短的主题中,我们将向您展示如何限制用户启动的进程数量以及如何检查当前限制并修改它们。
在进一步讨论之前,我们需要指出两件事:
- 您需要系统的 root 权限才能修改用户限制
- 如果你打算修改这些限制,你必须非常小心
要设置用户限制,我们需要编辑以下文件:
/etc/security/limits.conf
该文件用于应用pam_module创建的ulimit。
该文件的语法如下:
<domain> <type> <item> <value>
在这里我们将停下来讨论每个选项:
- 域- 包括用户名、群组、guid 范围等
- 类型– 软限制和硬限制
- 项目— 受限制的项目 — 核心大小、文件大小、nproc 等
- 值– 这是给定限制的值
限制的一个很好的例子是:
@student hard nproc 20
上面一行设置了该组最多 20 个进程的硬限制"student"
。
如果你想查看某个进程的限制,你可以简单地“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文件中输入的设置,可以查看此处提供的手册。
如果您有任何问题或意见,请随时在下面的评论部分提交。