Linux 的 windows 子系统如何通过 WSL 编辑 Ubuntu 中的 rtprio 限制?



由于 COVID-19 限制了我的团队对硬件的访问,我正在 PC 上模拟嵌入式软件。我们使用的是Micrium的uCOS-III RTOS,Linux POSIX端口要求将rtprio限制设置为无限制。他们的启动指南说要将<username> - rtprio unlimited添加到我在/etc/security/中找到的limits.conf文件中。当我尝试然后运行ulimit -a时,rtprio的限制仍然是 0。

我也尝试过运行ulimit -r unlimited,但除非我在sudobash 会话中,否则我没有正确的权限。我发现正确运行RTOS代码的唯一方法是运行sudo bash并在~/.bashrculimit -r unlimited。这要求我在任何时候想运行可执行文件时都要sudo,这有点烦人,并且还限制了一些调试选项。

我目前正在通过Linux的Windows子系统运行它,这就是我假设阻碍这一点的原因。我在 WSL2 和 Ubuntu 20.04 LTS 上。我只是想知道是否有办法在不处于超级用户模式下更改 rtprio 限制。谢谢!

添加/etc/security/limits.conf以下内容后:

#<domain>           <type>  <item>         <value>
<your_user_name>    hard    rtprio          20
<your_user_name>    soft    rtprio          0

不知何故,当您登录时它不会直接工作,因此您需要在使用新限制之前通过su更改用户。在设置ulimit之前尝试su <your_user_name>

$ ulimit -r
0
$ ulimit -Sr 1
1
$ ulimit -r
1

请注意,您可以将软限制设置为 0 蚂蚁到硬限制(在本例中为 0 - 20(之间,并且可以不可逆地减少硬限制。

最新更新