Question

J'ai donc un script que je veux exécuter comme root, sans hangar et bien. Dans quelle commande dois-je mettre les commandes?

sudo nohup nice foo.bash &

ou

nohup nio sudo foo.bash &

etc.

Je soupçonne que cela n'a pas d'importance mais j'aimerais un aperçu de ceux qui vraiment connaître.

Était-ce utile?

La solution

Si la gentillesse négative est souhaitée, je ferais: sudo nohup belle commande car selon les «info coreutils» nohup devrait se préempter agréable. Si je veux une bonne valeur négative, Sudo doit venir avant, car seule Root est capable d'utiliser des valeurs agréables négatives.

Si la gentillesse positive est souhaitée, je le ferais simplement: nohup belle commande sudo, cela garantit que nohup et sympa ne sont pas exécutés avec des privilèges racine.

Autres conseils

Sudo peut ne pas respecter la gentillesse. Au moins, ce n'est pas le cas sur ma machine (Ubuntu 9.04). Courir ceci:

nice sudo nice
sudo nice nice

Imprime 0 et 10. (Notez que «Nice» sans commande imprime la gentillesse actuelle.)

Le sudo devrait aller durer pour que NoHup et Nice ne fonctionnent pas avec des privilèges racine.

Alors ce dernier

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

La différence entre la première et la deuxième façon que vous l'avez fait, c'est qui possède le fichier nohup.out. sudo d'abord le fera la propriété de Root, nohup Avant Sudo, la propriété de votre utilisateur.

Être en désaccord avec d'autres réponses. Je recommande:

sudo nohup nice foo.sh

J'ai observé nohup sudo #échouer - IE Nohup n'est pas toujours transféré à Sudo'd sous-sub-processus (c'était pour certains scripts /etc/init.d sur Ubuntu qui a délégué à d'autres scripts). Je ne sais pas pourquoi, certainement surprenant, mais c'était le cas et a pris un bon petit temps pour déboguer.

(Je note que les autres signalent que la gentillesse qui ne soit pas transmise, il semble donc préférable de le mettre en dernier ... bien que si le doute sur votre système d'exploitation a mis bien plus tôt, car bien ne pas prendre effet est généralement moins un problème que de ne pas prendre effet!)

Notez que sudo nohup laisse noHup.out appartenant à Root, également comme cela a été mentionné, mais cela est fixé avec A:

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

Je suppose que tous font un Syscall Exec * pour passer le ballon au suivant, donc, quelle que soit la commande, cela ne laissera aucun processus suspendu.

Je dirais que Nohup devrait être le dernier pour que les deux autres ne cachent pas le gestionnaire de signaux. (Je suis sûr que Nice ne joue pas avec les signaux, mais Sudo le fait.)

Ensuite, sudo et sympa, tout dépend de la façon dont vous souhaitez modifier la priorité de planification avec Nice.

  • Si vous souhaitez augmenter la priorité (c'est-à-dire, donnez une valeur négative à Nice), faites Sudo avant.
  • Si vous souhaitez abaisser la priorité (donner à Nice une valeur positive), faites-le avant sudo, car vous n'avez pas besoin de privilèges racine.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top