概述用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)
我需要在低优先级的情况下启动一个cpu密集型的系统进程,这样它不会减慢我的服务器。 我怎么能在linux上做到这一点?
这与此问题类似: 使用Runtime.exe / ProcessBuilder.start以低优先级启动Java进程? 除了linux而不是windows。 如果进程启动后进程的优先级改变(只要没有太多的延迟),那也没关系。
如何增加新产生的进程的cpu频率
进程nice(优先级)设置对linux没有影响
内核模式下的linux进程调度
我将如何去deBUGging执行脚本的cron作业,但脚本似乎不完整?
* nix下的非GUI应用程序的体面事件库是什么? (C ++)
使用/usr/bin/nice运行该命令。 例如:
$ /usr/bin/nice -n 10 somecommand arg1 arg2
将运行一些somecommand arg1 arg2在+10的somecommand arg1 arg2 。 (在Unix / linux中,较高的nice值会导致调度程序的优先级降低, nice的范围通常为-19到+19)。
请注意,此解决方案是平台特定的。 它只能在linux和Unix系统上工作…
跟进
ProcessBuilder应该像任何常规命令一样被实例化; 即
new ProcessBuilder(\”nice\”,\”-n\”,\”10\”,\”somecommand\”,\”arg1\”,\”arg2\”);
关于什么时候/如何分割命令/参数没有黑魔法。 命令(例如nice )语法决定了它的参数应该是什么,并决定了它们应该如何在shell命令行上引用,以及如何在使用ProcessBuilder (或者本机exec* syscalls)时提供它们。
我不认为应该有waitFor()等问题,因为(AFAIK) /usr/bin/nice命令使用exec (而不是fork / exec )来运行提供的命令。 试试看 …
总结
以上是内存溢出为你收集整理的用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)全部内容,希望文章能够帮你解决用低优先级启动一个进程(使用Runtime.exec / ProcessBuilder.start)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容