标签: nice

在systemd用户服务中设置niceness值

我想以 -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)

linux xorg user nice systemd

9
推荐指数
1
解决办法
9872
查看次数

Linux 的“nice”命令适用于任何 shell 脚本吗?

是否nice适用于任何 shell 脚本,还是仅适用于基本 Linux 命令?

例如,如果我有一个包含sort函数的自定义 shell 脚本,并且我调用

nice myscript.sh
Run Code Online (Sandbox Code Playgroud)

调度优先级是否nice适用于sort脚本?如果在后台运行(使用或)nice仍然可以工作吗?myscript.sh&nohup

linux shell nice

7
推荐指数
1
解决办法
6823
查看次数

除非使用相同的 shell,否则 nice 在 Linux 中无效

如果我输入两个不同的根终端:

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,这是值得的。

cpu scheduling nice

6
推荐指数
1
解决办法
1396
查看次数

限制 Gradle/Android Studio 构建的优先级/线程?

当 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 使用的线程数?

java threads nice android-studio

6
推荐指数
1
解决办法
1644
查看次数

.sh 脚本中用于 cron 作业的漂亮命令

我有一个需要在共享虚拟主机上运行的 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 答案解决了我的问题

apache-http-server bash cron php nice

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

nice ×5

linux ×2

android-studio ×1

apache-http-server ×1

bash ×1

cpu ×1

cron ×1

java ×1

php ×1

scheduling ×1

shell ×1

systemd ×1

threads ×1

user ×1

xorg ×1