`ulimit` 是 shell,而不是用户

`ulimit` 是 shell,而不是用户

我们是多个用户在同一个帐户上工作

我想限制我的活动,不要挂起计算机,不要打扰其他用户。我想限制我的资源的使用而不是全部使用(因为如果一个进程可以,它就会使用全部)

有两种方法,一种优先,一种严格限制。问题是,Linux 不能很好地管理优先级,这意味着即使优先级较差,您也会减慢其他活动的速度。所以它让严格限制

但我只想限制我的外壳,而不是很多人使用的帐户

您对优先级或严格限制有什么建议吗?

答案1

ulimit 用于此目的:它为当前 shell 设置限制,而不是为全局用户或未来的 shell 设置限制;这些限制由在该 shell 中启动的进程继承。

为了让自己相信这一点,请在同一系统上使用同一用户打开两个 shell;检查两个 shell 中的限制 ( ulimit -a),然后在其中一个 shell 中使用 设置限制ulimit,然后ulimit -a在另一个 shell 中再次运行 — 第一个 shell 中应用的限制不会影响第二个 shell。

在 Linux 上,由 设定的限制ulimit详细描述于手册setrlimit。如果您想在共享系统上与其他用户的工作负载“和谐相处”,那么它们并不是真正有用。它们可以防止失控的进程导致资源耗尽(例如可以防止进程创建巨大的文件)。

您可能想了解一下cgroups如果它们在您的系统上可用,并且您作为普通用户可以访问。这些可以更好地控制内存、CPU 和 I/O 使用情况,而这通常会在多用户系统上产生问题。

相关内容