一个给定过程的cpulimit

时间:2012-03-04 15:23:36

标签: cpu-usage bash

我在Ubuntu 10.10中使用wine运行Windows版Tribler。有时它吃了很多我的CPU的功率,导致我的笔记本电脑升温。所以我需要放慢Tribler,我发现了cpulimit。要运行cpulimit,您需要使用PID个进程号。所以我设法在.bashrc中执行了以下操作:

alias tribler='wine /home/my_home/.wine/drive_c/Program\ Files/Tribler/tribler.exe'
alias slowdowntribler="cpulimit -l 10 -p `ps -ef | grep 'tribler.exe' | grep -vw 'grep' | awk '{print $2}'`"
alias slowtribler='tribler; slowdowntribler'

别名tribler只使用wine运行Tribler的Windows版本。 别名slowdowntribler只使用名称为cpulimit的进程的PID运行Tribler.exe

假设第三个别名首先运行tribler所以Tribler.exe上升,然后slowdowntribler来限制Tribler的cpu使用率。但是这里出现了一个问题。退出(或终止)slowdowntribler后,最后一个别名将运行Tribler.exe。为了解决这个问题,我尝试过:

alias slowtribler='tribler&; slowdowntribler'

(和一些变化)但我收到以下错误:

  

bash:意外令牌附近的语法错误`;'

我不知道如何继续。

1 个答案:

答案 0 :(得分:2)

只需删除`;'它应该按预期工作。

修改 总结讨论,工作代码是

alias tribler='wine /home/my_home/.wine/drive_c/Program\ Files/Tribler/tribler.exe'
alias slowdowntribler='cpulimit -l 10 -p `ps -ef | grep "tribler.exe" | grep -vw "grep" | awk "{print \\$2}"`'
alias slowtribler='tribler& sleep 1; slowdowntribler'

可能需要在sleep调用中使用另一个参数(例如.5)。