Pregunta

Así que tengo un script que quiero ejecutar como raíz, sin colgar y bien. ¿En qué orden debo poner los comandos?

sudo nohup lindo foo.bash &

o

nohup agradable sudo foo.bash &

etc.

Sospecho que no importa, pero me gustaría una idea de los que De Verdad saber.

¿Fue útil?

Solución

Si se desee una amabilidad negativa, lo haría: sudo nohup buen comando porque según 'info coreutils' nohup debería preciado bonito. Si quiero un valor negativo, sudo debe venir antes, ya que solo la raíz puede usar valores negativos agradables.

Si se desea una amabilidad positiva, lo haría simplemente: nohup bien sudo comando esto asegura que nohup y nice no se ejecuten con privilegios raíz.

Otros consejos

Sudo puede no respetar la amabilidad. Al menos, no lo hace en mi máquina (Ubuntu 9.04). Ejecutando esto:

nice sudo nice
sudo nice nice

Imprime 0 y 10. (Tenga en cuenta que 'agradable' sin comando imprime la amabilidad actual).

El sudo debería ir al final para que Nohup y Nice no funcionen con privilegios de raíz.

Entonces el último

~ $ sudo nohup nice whoami
nohup: ignoring input and appending output to `nohup.out'
~ $ sudo cat nohup.out 
root

La diferencia entre la primera y la segunda forma en que lo ha hecho es quien posee el archivo nohup.out. sudo Primero lo hará propiedad de Root, nohup Antes de que sudo lo hará propiedad de su usuario.

Discrepar con otras respuestas. Yo recomiendo:

sudo nohup nice foo.sh

He observado nohup sudo #fallar -es decir, nohup no siempre se transfiere a sub-subprocesos sudotados (esto fue para ciertos /etc/init.d scripts en Ubuntu que delegó a otros scripts). No estoy seguro de por qué, ciertamente sorprendente, pero fue el caso y tomó un buen pequeño momento para depurar.

(Observo que otros informan que no se pasa la amabilidad, por lo que parece mejor decirlo por última vez ... aunque en duda en su sistema operativo, se ponga agradable antes, porque Niza no entrar en efecto suele ser un problema menos que no en vigencia!)

Tenga en cuenta que sudo nohup Deja nohup.out propiedad de Root, también como se ha mencionado, pero eso se fija con A:

sudo nohup nice foo.sh >> /tmp/foo.stdout.log 2>> /tmp/foo.stderr.log

Supongo que todos hacen un exec* syscall para pasar la pelota al siguiente, por lo que, sea cual sea el orden, no dejará ningún proceso colgante.

Diría que Nohup debería ser el último para que los otros dos no se acuñen el manejador de la señal. (Estoy seguro de que agradable no juega con señales, pero sudo lo hace).

Luego, sudo y agradable, todo depende de la forma en que desee alterar la prioridad de programación con Niza.

  • Si desea aumentar la prioridad (es decir, dar un valor negativo a Niza) Haga sudo antes.
  • Si desea reducir la prioridad (dale un valor positivo), hazlo antes de sudo, ya que no necesita privilegios de raíz.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top