
Я хотел бы начать процесс с хорошим значением -20. Для этого мне нужно использовать команду типа
sudo nice -n -20 matlab
Однако это запускает Matlab как root тоже. Есть ли способ сделать Matlab не root?
Мой текущий подход таков:
sudo nice -n -20 sudo -u myusername matlab
что для меня выглядит как хак. Есть ли прямой подход, чтобы сделать это?
решение1
Я бы запустил его как обычно, а потом использовал бы «renice»...
Однако мне удалось сделать быстрый хак с помощью «su», который работает:
sudo nice -n -20 su -c command_to_run user_to_run_as
Если вам не нужно указывать пароль для sudo (возможно, потому что вы уже его указали), вы можете добавить , &
чтобы перевести все это в фоновый режим.
Поскольку вы уже стали root с помощью команды sudo, su
пароль спрашиваться не будет. Мне удалось запустить X-программу из эмулятора терминала под X. Если вы хотите запустить X-программу как другой пользователь, а не как пользователь, владеющий X-сессией, вам, вероятно, придется явно указать X разрешить это (открыть для X-клиентов от этого пользователя).
решение2
Я обнаружил, что это можно сделать, изменив файл /etc/security/limits.conf
(по крайней мере, в некоторых дистрибутивах Linux). В моем случае я просто добавил:
#<domain> <type> <item> <value>
my_user - nice -20`
затем вы можете выполнить
nice -n -20 matlab
Выйдите из системы и войдите снова после сохранения изменений в /etc/security/limits.conf
.
Этототвечатьобъясняет почему.
решение3
Еще один шаг вперед @Jordan: вот элегантное решение против sudo nice -n -xx su <username> -c matlab
взлома.
Примечание: использование username=
sid
, matlab meta-data dir=/var/lib/matlab
, nice=-10
-- измените по своему желанию
- Создать каталог метаданных Matlab
sudo mkdir /var/lib/matlab
- Добавить указанного пользователя для запуска Matlab и предоставить необходимые разрешения
sudo useradd -d /var/lib/matlab sid sudo chown sid:sid /var/lib/matlab
- Установить пароль пользователя
sudo passwd sid
- Добавить следующее к
/etc/security/limits.conf
sid - priority -10
- Настройте и скопируйте ssh-ключ для автоматического входа (необязательно)
ssh-keygen -t rsa #following key passwd misc ssh-copy-id sid@localhost #using sid's passwd
- Создать оболочку Matlab (исправить)ошибка молчаливого сбоя)
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
- Настройте оболочку входа "sid"
sudo usermod -s /usr/local/bin/wmatlab sid
- Запустите Matlab
ssh
с помощьюXforward
ssh -X sid@localhost
решение4
Как сказал @jordanm, отбросьте sudo. Вы можете настроить собственные процессы, чтобы задать им более низкий приоритет:
nice -20 matlab
Нет sudo
.