sudo nohup bom <— em que ordem?
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.
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.