看起来我已将 logcheck 设置为 cron 作业,并且每当它运行时grep
都会logcheck
占用大约 1/4 的 CPU。
现在,我在某些时候需要我的全部 CPU 容量,并让我的系统占用尽可能少的资源,除了特定/进程(我也许可以以某种方式指定)之外。
是否可以将我的带有 KDE 机器的 Debian 9.1 设置为某种性能模式(或“游戏模式”),以防止用户未明确启动的进程占用大量系统资源,降低后台进程的负载,最重要的是:延迟 cron 作业直到该模式再次停止?
答案1
如果“某些时间”不固定,IE如果您想手动指定系统何时进入和离开“性能模式”,您可以简单地停止和启动cron
:
sudo systemctl stop cron
将阻止任何 cron 作业运行,并且
sudo systemctl start cron
将重新启用它们。
您也可以查看anacron
而不是cron
,以适合您的用途的方式进行全局调整可能会更容易。
答案2
我会考虑两种方法
保持调度不变,但运行所有
cron
作业nice
,甚至可能ionice
:0 * * * * root ionice -c3 nice /some/command and parameters
cron
在某些时间禁止任何工作。请记住,任何可以创建(或删除)标志文件的用户都可以控制此方法。如果您想设置游戏模式,这可能会起作用一经请求,通过将touch
和rm
命令添加到游戏的启动脚本中。 (您可能需要使用/tmp
而不是/var/run
,但它对任何用户都很开放。)0 18 * * * root touch /var/run/no_cron 0 19 * * * root rm -f /var/run/no_cron 0 * * * * root test ! -f /var/run/no_cron && /some/command...
一旦设置完毕,这两种方法都不需要 root 访问权限。此外,您可以提前决定哪些工作应该受到这种控制,哪些工作不应该受到这种控制。