Lor*_*oh. 23 process priority nice
我想以 -20 的不错值开始一个过程。这需要我使用类似的命令
sudo nice -n -20 matlab
Run Code Online (Sandbox Code Playgroud)
但是,这也以 root 身份启动 matlab。有没有办法让matlab成为非root用户?
我目前的做法是
sudo nice -n -20 sudo -u myusername matlab
Run Code Online (Sandbox Code Playgroud)
这对我来说看起来像一个黑客。有没有直接的方法来做到这一点?
Baa*_*rud 23
我会正常启动它,然后使用“renice”...
但是,我能够与有效的“su”一起进行快速破解:
sudo nice -n -20 su -c command_to_run user_to_run_as
Run Code Online (Sandbox Code Playgroud)
如果你不必给 sudo 一个密码——也许是因为你刚刚给了它——你可以添加一个&
把整个事情放在后台。
由于您已经使用 sudo 命令成为 root,su
因此不会要求您输入密码。我能够从 X 下的终端仿真器启动 X 程序。如果你想以另一个用户而不是拥有 X 会话的用户身份运行 X 程序,你可能需要明确告诉 X 允许它(为来自该用户的 X 客户端打开)。
小智 10
更进一步@Jordan:这是针对sudo nice -n -xx su <username> -c matlab
黑客的优雅解决方案。
注意:使用 username=
sid
, matlab meta-data dir=/var/lib/matlab
, nice=-10
-- 随意更改
sudo mkdir /var/lib/matlab
Run Code Online (Sandbox Code Playgroud)
sudo useradd -d /var/lib/matlab sid
sudo chown sid:sid /var/lib/matlab
Run Code Online (Sandbox Code Playgroud)
sudo passwd sid
Run Code Online (Sandbox Code Playgroud)
/etc/security/limits.conf
sid - priority -10
Run Code Online (Sandbox Code Playgroud)
ssh-keygen -t rsa #following key passwd misc
ssh-copy-id sid@localhost #using sid's passwd
Run Code Online (Sandbox Code Playgroud)
sudo -i
cat <<EOF >>/usr/local/bin/wmatlab
#!/bin/bash --
# A wrapper to launch matlab
/usr/local/MATLAB/<version>/bin/matlab -desktop
EOF
chmod +x /usr/local/bin/wmatlab
Run Code Online (Sandbox Code Playgroud)
sudo usermod -s /usr/local/bin/wmatlab sid
Run Code Online (Sandbox Code Playgroud)
ssh
with启动 matlabXforward
ssh -X sid@localhost
Run Code Online (Sandbox Code Playgroud)
小智 7
我发现这可以通过修改文件来完成/etc/security/limits.conf
(至少在某些 linux 发行版上)。就我而言,我只是补充说:
#<domain> <type> <item> <value>
my_user - nice -20`
Run Code Online (Sandbox Code Playgroud)
然后你可以执行
nice -n -20 matlab
保存更改后注销并重新登录/etc/security/limits.conf
。
这个答案解释了原因。