我正在尝试编写一个程序,根据配置文件(基本上是路径优先级对)自动设置进程优先级.
我认为最好的解决方案是替换execve()系统调用的内核模块.太糟糕了,系统调用表不会在内核版本> 2.6.0中导出,因此如果没有真正难看的黑客攻击,就无法替换系统调用.
我不希望做到以下几点:
- 使用shell脚本替换二进制文件,启动和重新编写二进制文件.-Patch /重新编译我的股票Ubuntu内核 - 像阅读内核可执行内存和猜测syscall表位置一样丑陋的黑客 - 运行进程的轮询
我真的想成为:
- 能够根据可执行路径和配置文件控制任何进程的优先级.规则适用于任何用户.
你们有没有人对如何完成这项任务有任何想法?
如果您已经决定采用轮询解决方案,那么您想要实现的大多数功能已经存在于Automatic Nice Daemon 中。您可以根据进程名称、用户和组为进程配置好级别。甚至可以根据到目前为止使用的 CPU 时间动态调整进程优先级。