【问题标题】:block a command in ubuntu(in shell)在 ubuntu 中阻止命令(在 shell 中)
【发布时间】:2014-04-09 11:08:33
【问题描述】:

我在任何时候都在使用 10 个用户的 ubuntu 服务器。我们通常将代码保存在那里并使用服务器进行构建。根据定义的并发性,构建通常需要 30 到 50 分钟。构建命令是make -jX,其中 X 可以是 1 到 24 之间的任何值。

当许多用户开始发出具有更高 X 值的 make 命令时,我的问题就开始了。有没有办法阻止这些命令或设置任何限制。

例如,如果有人给出make -jX (X>4),我应该能够将命令覆盖为make -j4

我知道一种方法是使用 alias 但我不知道如何通过别名来解释参数值(例如 .bashrc 文件中的alias ll='ls -la' 可以,但是如何通过 bashrc 解释ll -lha)。

还有什么方法可以让别名对所有用户都有效,而无需编辑所有用户的 bashrc 文件?

提前致谢。

【问题讨论】:

  • 您需要阻止特定用户的 make 命令吗?
  • 不,我想让它通用,这样如果有人给出更高 j 值的 make,它应该自动回退到默认值
  • en.wikipedia.org/wiki/Alias_(command) 最后他们给出了如何使用 shell 脚本函数为别名添加选项。也许这会对你有所帮助
  • 这假设您的用户不会想办法避免限制他们访问的别名/功能。最好告诉管理层他们需要购买更多服务器;->。祝你好运。
  • 通过别名如何忽略别名 make='make -j4' 这样的参数如果用户给出命令为 make -j8 怎么办

标签: shell ubuntu command-line makefile alias


【解决方案1】:

尽管以无法规避的方式将参数限制为特定命令(在本例中为 make)通常很难,但您可以使用 /etc/security/limits.conf 为每个用户配置系统级进程限制。

如果您在系统上打开此文件,您将在 cmets 中看到您可以限制各种用户资源,例如 nproc 和内存。如果您使用这些限制,您可能会获得一些合理的东西,以便在您的开发人员之间获得公平的资源共享。

【讨论】:

    猜你喜欢
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多