
-20이라는 좋은 값으로 프로세스를 시작하고 싶습니다. 이를 위해서는 다음과 같은 명령을 사용해야 합니다.
sudo nice -n -20 matlab
그러나 이것은 MATLAB도 루트로 시작합니다. 루트가 아닌 사용자로 MATLAB을 사용하는 방법이 있습니까?
내 현재 접근 방식은
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에 비밀번호를 제공할 필요가 없다면(이미 비밀번호를 제공했기 때문일 수 있음) &
전체를 백그라운드로 두기 위해 를 추가할 수 있습니다.
이미 sudo 명령으로 루트가 되었기 때문에 su
비밀번호를 묻지 않습니다. X 아래의 터미널 에뮬레이터에서 X 프로그램을 시작할 수 있었습니다. X 세션을 소유한 사용자가 아닌 다른 사용자로 X 프로그램을 실행하려면 X에 이를 허용하도록 명시적으로 지시해야 할 것입니다. (해당 사용자의 X 클라이언트에 대해 열려 있음)
답변2
나는 파일을 수정함으로써 이것이 가능하다는 것을 발견했습니다 /etc/security/limits.conf
(적어도 일부 리눅스 배포판에서는). 내 경우에는 다음과 같이 간단히 추가했습니다.
#<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
.
참고: 사용자 이름=
sid
, matlab 메타데이터 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
ssh
with 를 사용 하여 MATLAB 시작Xforward
ssh -X sid@localhost
답변4
@jordanm이 말했듯이 sudo를 삭제하세요. 자신의 프로세스에 더 낮은 우선순위를 부여할 수 있습니다.
nice -20 matlab
아니요 sudo
.