Я хотел бы начать процесс с хорошим значением -20. Это требует, чтобы я использовал команду как - sudo nice -n -20 matlab
. Тем не менее, это также запускает matlab как root. Есть ли способ получить Matlab без полномочий root?
Мой нынешний подход - sudo nice -n -20 sudo -u myusername matlab
- который для меня выглядит как взломать. Есть ли прямой подход к этому?
sudo
.root
не нужно для приятного собственного процесса.nice -n -20 matlab
и это хороший вывод: нельзя установить добротность: в доступе отказано. Matlab запускается, и хорошее значение равно 0.system('sudo renice ...')
в MATLAB, но Matlab запускает 2 процесса - MATLAB и matlab_helper. Я мог бы сделать это на обоих. Более того, я также хочу, чтобы все мои процессы MATLAB имели высокий приоритет - когда я начинаюmatlabpool local
параллельную обработку. @HaukeLaging - я начинаю думать, что ты прав.Ответы:
Я бы запустил его как обычно и потом использовал бы "renice" ...
Однако я смог быстро взломать «su», который работает:
(Если вам не нужно давать sudo пароль - возможно, потому что вы его только что дали - вы можете добавить «&», чтобы поместить все это в фоновый режим.)
Поскольку вы уже стали пользователем root с помощью команды sudo, su не будет запрашивать у вас пароль. Я смог запустить X-программу из эмулятора терминала под X. Если вы хотите запустить X-программу от имени другого пользователя, а не пользователя, владеющего X-сессией, вам, вероятно, потребуется явно указать X, чтобы разрешить ее (открыт для X-клиентов от этого пользователя).
источник
sudo nice -n 19 su -c $(echo "test")
дает вывода.sudo nice -n 19 su -c "echo 'test'"' When you want to run a function in
су -c do` см stackoverflow.com/a/3727572/2522849Еще один шаг @Jordan, вот элегантное решение против
sudo nice -n -xx su <username> -c matlab
взломаСоздать каталог метаданных matlab (PERPARE)
sudo mkdir /var/lib/matlab
Добавить указанного пользователя для запуска matlab & right persimisson
Установить пароль пользователя (sid)
sudo passwd sid
Добавить следующее в /etc/security/limits.conf
sid - priority -10
Настройка и копирование ssh-ключа для автоматизации входа в систему (необязательно)
Вход в оболочку Ajust sid
sudo usermod -s /usr/local/bin/wmatlab sid
начать Matlab с помощью SSH с Xforward
ssh -X sid@localhost
источник
Я обнаружил, что это можно сделать, изменив файл
/etc/security/limits.conf
(по крайней мере, на некоторых дистрибутивах Linux). В моем случае я просто добавил#<domain> <type> <item> <value> my_user - nice -20
тогда вы можете выполнить
nice -n -20 matlab
источник
Как сказал @jordanm, брось Судо. Вы можете настроить свои собственные процессы, чтобы дать им более низкий приоритет:
Нет
sudo
.источник
system('ps a -o pid -o comm -o nice')
получил меня13580 MATLAB 19
- MATLAB работает с самым низким приоритетом вместо самого высокого. Мой вопрос был о том, как повысить приоритет, а не уменьшить его.sudo
, это правильная команда -nice -n -20 matlab
и это выводnice: cannot set niceness: Permission denied
. Matlab запускается, и хорошее значение равно 0.pam позволяет вам установить ограничения для nice для каждой группы в ее конфигурационном файле:
И убедитесь, что в группе процесс запускается в границе.
источник
Добавьте пользователя в sudoers (фактически, новый файл в /etc/sudoers.d, но в той же предпосылке):
Затем, как "niceuser":
и он делает то, что мне нужно (то есть мой пользователь теперь может увеличить приоритет {command ...}). Он поддерживает несколько пользователей и т. Д. - используйте
man 5 sudoers
для деталей.источник
Другой возможный вариант (простой, но менее безопасный) - включить разрешение setuid / setgid для
nice
исполняемого файла.setuid назначает любому пользователю, который может выполнить файл, эффективный UID владельца файла (в данном случае
root
) при выполнении файла, таким образом, эквивалентно тому, что он работает как этот пользователь. setguid делает то же самое для эффективного GID.Или вы можете сделать это более безопасно:
Остерегайтесь, вам нужно повторно войти в свою учетную запись, чтобы новая группа вступила в силу.
источник