在麒麟系统中需区分后台运行与优先级设置:启动时用nice -n -10 python3 script.py &(root权限)实现高优后台;已运行进程用sudo renice -n -5 -p $(pgrep -f "xxx")动态提权;长期服务通过systemd edit配置Nice=-10和实时IO调度永久固化。

在麒麟系统中让Python脚本、日志轮转或数据库同步等后台任务稳定运行不被抢占,需明确区分“后台运行”与“优先级设置”两个独立动作——进程默认以nice=0启动,即使加&放到后台,调度权重仍与前台程序相同。
启动时直接指定后台+高优先级
这一步适用于你尚未运行目标程序,且希望它从诞生起就获得更强CPU保障。
打开终端,输入命令:nice -n -10 python3 /opt/scripts/backup.py &
其中-n -10将nice值设为-10(比默认0更高优先级),【只有root或sudo权限才能设置负值】;末尾的&符号确保进程立即转入后台,不阻塞当前终端。
若提示“Permission denied”,说明当前用户无权降低nice值,需加sudo:sudo nice -n -10 python3 /opt/scripts/backup.py &,然后输入密码。
该进程启动后即在后台持续运行,并享有更高调度权重,但不会影响实时进程(如音频驱动)的资源分配。
对已运行的后台进程动态调优
当你发现某个已在后台运行的进程(如用nohup启动的Java服务)响应迟缓、CPU占用偏低,又不想中断其执行,就用renice实时修正。
方法一:通过进程名快速定位并提权
执行sudo renice -n -5 -p $(pgrep -f "java.*backup"),自动查出匹配进程PID并设为nice=-5。
方法二:手动分步操作更可控
① 查出目标进程PID:ps aux | grep "backup.py",找到最左列数字(例如28471)。
② 执行sudo renice -n -15 28471,将该后台进程nice值设为-15。
【若跳过sudo,普通用户无法将nice值调低】。
③ 验证是否生效:ps -o pid,ni,comm -p 28471,输出中NI列应显示-15。
用systemd永久固化后台服务优先级
适用于长期驻留的守护进程(如Ollama、MinIO),避免每次重启都需手动调优。
执行sudo systemctl edit ollama.service,在打开的编辑器中添加以下内容:
[Service]
Nice=-10
IOSchedulingClass=realtime
IOSchedulingPriority=1
保存退出后执行sudo systemctl daemon-reload && sudo systemctl restart ollama。
此后该服务每次启动都会自动以nice=-10运行,且IO调度策略升级为实时级,确保磁盘读写不被延迟。

















