¿Cómo inicio un proceso con un buen valor de -20 y no le doy privilegios de root?

¿Cómo inicio un proceso con un buen valor de -20 y no le doy privilegios de root?

Me gustaría iniciar un proceso con un buen valor de -20. Esto requiere que use un comando como

sudo nice -n -20 matlab

Sin embargo, esto también inicia matlab como root. ¿Hay alguna manera de tener matlab como no root?

Mi enfoque actual es

sudo nice -n -20 sudo -u myusername matlab

lo que para mí parece un truco. ¿Existe un enfoque directo para hacer esto?

Respuesta1

Lo iniciaría normalmente y luego usaría "renice"...

Sin embargo, pude hacer un truco rápido junto con "su" que funciona:

sudo nice -n -20 su -c command_to_run user_to_run_as

Si no tiene que darle una contraseña a Sudo, tal vez porque ya se la acaba de dar, puede agregar una &para poner todo en segundo plano.

Como ya te conviertes en root con el comando sudo, suno te pedirá una contraseña. Pude iniciar un programa X desde un emulador de terminal en X. Si desea ejecutar el programa X como otro usuario que no sea el propietario de la sesión X, probablemente necesitará decirle explícitamente a X que lo permita. (abierto para clientes X de ese usuario).

Respuesta2

Descubrí que esto se puede hacer modificando el archivo /etc/security/limits.conf(al menos en algunas distribuciones de Linux). En mi caso simplemente agregué:

#<domain>    <type>  <item>  <value>
my_user        -     nice       -20`

entonces puedes ejecutar

nice -n -20 matlab

Cierre sesión y vuelva a iniciarla después de guardar los cambios en /etc/security/limits.conf.

Esterespuestaexplica por qué.

Respuesta3

Un paso más @Jordan: Aquí está la solución elegante contra sudo nice -n -xx su <username> -c matlabel hack.

Nota: Usando nombre de usuario= sid, matlab meta-data dir= /var/lib/matlab, nice= -10- cambie a su voluntad

  1. Crear directorio de metadatos de Matlab
    sudo mkdir /var/lib/matlab
    
  2. Agregue el usuario especificado para iniciar matlab y el permiso correcto
    sudo useradd -d /var/lib/matlab sid
    sudo chown sid:sid /var/lib/matlab
    
  3. Establecer contraseña de usuario
    sudo passwd sid
    
  4. Añade lo siguiente a/etc/security/limits.conf
    sid - priority -10
    
  5. Configure y copie la clave ssh para automatizar el inicio de sesión (opcional)
    ssh-keygen -t rsa #following key passwd misc   
    ssh-copy-id sid@localhost #using sid's passwd
    
  6. Crear contenedor de shell de matlab (arreglarerror de falla silenciosa)
    sudo -i
    cat &lt;&lt;EOF &gt;&gt;/usr/local/bin/wmatlab
    #!/bin/bash --
    # A wrapper to launch matlab
    /usr/local/MATLAB/&lt;version&gt;/bin/matlab -desktop
    EOF
    chmod +x /usr/local/bin/wmatlab
    
  7. Ajustar el shell de inicio de sesión de "sid"
    sudo usermod -s /usr/local/bin/wmatlab sid
    
  8. Inicie matlab usando sshconXforward
    ssh -X sid@localhost
    

Respuesta4

Como dijo @jordanm, sudo. Puede modificar sus propios procesos para darles una prioridad más baja:

nice -20 matlab

No sudo.

información relacionada