Pergunta

Então, eu tenho um script que deseja executar como root, sem interrupção e bem.Que ordem devo colocar os comandos?

sudo nohup bom foo.bash &

ou

nohup bom sudo foo.bash &

etc.

Eu suspeito que não importa, mas gostaria de algumas dicas de quem realmente conheço.

Foi útil?

Solução

Se negativo gentileza é desejado, gostaria de fazer:sudo nohup comando nice porque de acordo com a info coreutils' nohup deve anteceda nice.Se eu quiser um negativo valor de nice, o sudo deve vir antes, pois somente o root é capaz de usar valores de nice negativos.

Se positivo gentileza é desejado, gostaria de fazer simplesmente:nohup bom comando sudo Isso garante que nohup e agradável, não são executados com privilégios de root.

Outras dicas

O sudo pode não respeitar a gentileza. Pelo menos, não é na minha máquina (Ubuntu 9.04). Executando isso:

nice sudo nice
sudo nice nice

Imprime 0 e 10. (Observe que 'Nice' sem comando imprime a gentileza atual.)

O sudo deve ir por último para que Nohup e Nice não estejam correndo com privilégios de raiz.

Então o último

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

A diferença entre a primeira e a segunda maneira que você fez é quem possui o arquivo nohup.out. sudo primeiro fará com que seja de propriedade da raiz, nohup Antes de Sudo tornará o seu usuário.

Discordar com outras respostas. Eu recomendo:

sudo nohup nice foo.sh

Eu observei Nohup sudo #falhou -O IE Nohup nem sempre é transferido para os procesos sub-sub-sub-sub-sub-sub-sub-sub-scripts no Ubuntu que delegaram a outros scripts). Não sei por que, certamente surpreendente, mas foi o caso e levou uma boa pouca para a depuração.

(Observo que os outros relatam a gentileza que não está sendo aprovada, por isso parece melhor colocá -lo por último ... embora, se em dúvida, em seu sistema operacional, seja bom antes, porque bom não entrar em vigor geralmente é menos um problema do que nohup não entrar em vigor!)

Observe que sudo nohup deixa nohup.out de propriedade da raiz, também como foi mencionado, mas isso é corrigido com a:

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

Eu acho que todos eles fazem um syscall executivo para passar a bola para a próxima, então, seja qual for o pedido, ela não deixará nenhum processo de suspensão.

Eu diria que nohup deveria ser o último para que os outros dois não estejam o manipulador de sinal. (Tenho certeza que bom não brinca com sinais, mas sudo faz.)

Então, Sudo e Nice, tudo depende da maneira que você deseja alterar a prioridade de agendamento com Nice.

  • Se você deseja aumentar a prioridade (ou seja, dê um valor negativo a Nice) faça sudo antes.
  • Se você deseja diminuir a prioridade (dê um valor positivo no BEA antes de Sudo, pois você não precisa de privilégios de raiz.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top