我不是在问如何友善和反友善UNIX 上的命令。
实际情况是,在我经常登录的某台机器上,我只被允许运行低优先级(nice 19)的长时间运行的进程。有没有办法让这台机器上的所有命令都像我给它们设置了“niced 19”一样运行?
启动命令时,我难免会忘记在命令前加上“nice 19”,然后需要在 ps/top 中四处寻找,找到占用大量资源的进程的 pid,然后重新设置它的优先级。这太麻烦了,而且我冒着惹恼系统管理员的风险;有没有办法默认执行此操作?
非常感谢!~l
答案1
假设 Bash,如果您的系统支持此功能,请将其放在您的~/.bashrc
或中~/.profile
:
ulimit -e 19
您可以先从命令行尝试一下,作为测试。
答案2
您可以要求系统管理员查看调整 limits.conf,它是 PAM 的一部分,位于(在我的 Ubuntu 系统上)/etc/security 中的配置文件。
像
@users hard priority 19
设置用户账户启动的进程的默认“优良性”。
答案3
这个答案假设你的 shell 是bash
。
不需要在ps
或中乱搞top
,如果进程不是通过 启动的,只需使用 Ctrl-z 暂停进程&
,然后运行jobs -l
以获取 pid,该 pid,然后通过(对于 BackGround)或(ForeGround)renice
继续执行作业。bg
fg
答案4
你有没有尝试过很不错? 虽然它有点旧,但仍然似乎是一款能够满足您需求的程序。
更新2019-02-06:链接已更新。