.TH CPULIMIT_FORK 1 "2025-10-16" "Kylin 1.0" "User Commands" .SH NAME cpulimit_fork \- 限制指定进程CPU使用率的工具 .SH SYNOPSIS .B cpulimit_fork .I PID .I PERCENT [OPTIONS] .SH DESCRIPTION .B cpulimit_fork 是一个用于限制指定进程CPU使用率的工具,通过发送SIGSTOP和SIGCONT信号来控制进程的运行状态,确保其CPU使用率不超过设定的阈值。 该工具通过以下方式工作: - 监控目标进程的CPU使用时间(从/proc文件系统读取jiffies数据) - 维护一个循环缓冲区存储进程的CPU使用快照 - 动态计算进程的CPU使用率并与限制阈值比较 - 根据比较结果发送信号控制进程运行或暂停 - 自动适应系统CPU核心数量调整限制范围 .SH ARGUMENTS .TP .I PID 目标进程的进程ID,必须是一个有效的非负整数。工具会验证该进程是否存在,并检查是否有控制权限。 .TP .I PERCENT CPU使用率限制值(百分比),必须在1到系统CPU核心数×100之间。例如,在4核系统上,有效范围是1-400。 .SH OPTIONS .TP .B \-\-lazy 启用惰性模式(默认)。当目标进程不存在或已终止时,工具会立即退出。 .TP .B \-\-no-lazy 禁用惰性模式。当目标进程不存在或已终止时,工具会每2秒重试一次,直到进程出现。 .TP .B \-h, \-\-help 显示帮助信息并退出。 .TP .B \-v, \-\-version 显示版本信息并退出。 .SH EXAMPLES .TP 限制PID为1234的进程CPU使用率不超过50%: .B cpulimit_fork 1234 50 .TP 在4核系统上限制PID为5678的进程CPU使用率不超过200%(相当于总CPU的50%): .B cpulimit_fork 5678 200 .TP 禁用惰性模式,持续等待并限制PID为9012的进程,使用率不超过30%: .B cpulimit_fork 9012 30 --no-lazy .SH FILES .TP /proc/[PID]/stat 用于获取目标进程的CPU时间信息 .TP /var/log/syslog 记录工具运行日志,包括进程ID和限制值 .SH NOTES * 工具需要足够的权限才能向目标进程发送信号 * 不能用于限制自身进程(会提示错误并退出) * 退出时会自动发送SIGCONT信号恢复目标进程运行 * 限制精度依赖于系统时钟和调度机制 .SH SEE ALSO .BR kill (1), .BR top (1), .BR proc (5), .BR kylin-process-manager (1) .SH AUTHOR Kylin操作系统开发团队 .SH COPYRIGHT Copyright © 2025 Kylin OS. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.