我的服务器用户之一需要启动 CPU 和 I/O 密集型作业,这些作业也可以快速完成(通常不到 30 秒)。它们可以由用户的 cron、用户的 shell 甚至 或从 root 进程分叉/启动的进程启动Apache
( MySQL 和 Apache 以 root 身份运行PHP
,MySQL
然后分叉进程将自己设置为相应的用户)。
有没有办法对整个用户以及该用户拥有的所有未来进程进行友好处理?
编辑 提高了目标流程类型的精确度
答案1
在Unix 中,所有子进程都继承其父进程的niceness 值,因此您可以简单地调整用户的根进程(例如bash),这将为您解决这个问题。
如果已经有一个会话处于活动状态并且您不知道要重新启动哪个父进程(或者有太多父进程需要手动重新启动),则可以对所有用户进程执行此操作:
sudo renice 20 --pid `ps -o pid --user USERNAME`