我想以 -20 作为非 root 启动 xcape。然而,设置一个好的值 -20 需要 root 权限。所以我想知道这是否可能。我还尝试创建系统服务和设置User=myuser,但 xcape 需要 xorg,DISPLAY因此XAUTHORITY
到目前为止我得到了什么:
[Unit]
Description=xcape: esc on caps lock
PartOf=graphical-session.target
[Service]
Type=simple
Nice=-20
ExecStart=/usr/bin/xcape -t 180 -e 'Caps_Lock=Escape'
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud) 是否nice适用于任何 shell 脚本,还是仅适用于基本 Linux 命令?
例如,如果我有一个包含sort函数的自定义 shell 脚本,并且我调用
nice myscript.sh
Run Code Online (Sandbox Code Playgroud)
调度优先级是否nice适用于sort脚本?如果在后台运行(使用或)nice仍然可以工作吗?myscript.sh&nohup
如果我输入两个不同的根终端:
nice -n 19 burnK7 &
Run Code Online (Sandbox Code Playgroud)
和
nice -n -19 burnK7 &
Run Code Online (Sandbox Code Playgroud)
然后两个进程都获得大约 50% 的可用 CPU 时间——这不是预期的,当然也不是所期望的。
如果我在同一个根终端中运行:
nice -n 19 burnK7 &
nice -n -19 burnK7 &
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,第一个进程收到大约 0% 的可用 CPU 时间,第二个进程收到大约 100% 的可用 CPU 时间。
这是错误还是功能?
我正在单核机器上运行带有 3.16 版内核的 Arch Linux,这是值得的。
当 Android Studio 构建我的项目时,它很容易吃掉我所有的 8 个内核。我希望能够在我的应用程序编译时流畅地浏览互联网。有没有办法可以将 Gradle 的 java 进程设置为低优先级(nice level > 10)?
该解决方案非常适合我的 gentoo 系统(portage 在 niceness 19 上运行,我通常可以在编译时使用我的 PC)。最佳情况下,只有 Gradle 的 java 应该以低优先级运行,因此 Android Studio 本身保持响应。如果这是不可能的,那么将 Gradle 的 Java VM 限制为仅使用 5-7 个内核是否更容易?不过,这可能会导致更长的构建时间。
我手动试验了一下。我在循环中运行了一个脚本,它每秒为所有新的 Java 进程设置良好的 15 级(Windows 用户的“低优先级”)。不幸的是,系统仍然不是很灵敏。我看到在编译期间我的平均负载上升到20,而我只有 4 个(逻辑)内核。这意味着 Gradle 产生了太多线程。我在其他地方读到这些线程也很少屈服,这可能是降低优先级无济于事的原因。
所以,更新的问题是:是否可以限制 Gradle 使用的线程数?
我有一个需要在共享虚拟主机上运行的 php 脚本。我创建了一个执行 sh 脚本的 cron 作业。我的 crontab 中的命令是:
/bin/sh /home/user/script.sh
我假设它是 Bourne Shell(或兼容的东西)。脚本本身是:
#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results
Run Code Online (Sandbox Code Playgroud)
我有以下问题:
我可以为 php 命令添加很好的优先级吗?或者我是否需要在 cron 命令中将其添加到脚本中。
哪一个更有可能工作?
nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB
上述命令在以较低优先级运行时会成功吗?
PS:基本上,这个脚本在我通过浏览器运行它之前已经使服务器过载,它影响了该服务器上的 APACHE,导致我的主机阻止了该文件。我一再要求他们解锁以使用不同的参数对其进行测试。现在我试图以较低的优先级通过 cron 运行它 - 希望它不会影响 APACHE。但我不希望它再次产生问题,因此我尝试使用nice。
更新:我使用了那里显示的批处理文件。我在批处理文件中的 php 之前使用了 nice 命令。唯一的区别是:
nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB
我添加了命令来运行其他具有相同属性的 php 脚本。他们都工作得很好。
感谢大家的输入@sm4rk0 答案解决了我的问题