nohup vs. Screen


39

Auparavant, je nohupdirigeais de gros jobs d'arrière-plan, mais j'ai remarqué que beaucoup de gens l'utilisent screendans ce contexte. Donne-t-il screenun avantage fonctionnel dont je ne suis pas au courant ou s'agit-il simplement d'une question de préférence?

Réponses:


25

Les deux ont leurs propres avantages et inconvénients:

nohup:

  1. nohup est utile pour exécuter des processus en arrière-plan lorsque ceux-ci ne nécessitent aucune intervention de l'utilisateur, comme un serveur Web ou tout autre processus serveur similaire.
  2. nohup crée un journal dans le répertoire d'exécution du processus. Le nom du fichier journal est nohup.out.
  3. Cela évite que le processus soit tué par suite d'une erreur Ctrl+ Cou d'une combinaison de touches similaire. Juste une sauvegarde.
  4. Il est normalement installé par défaut avec la configuration de base. Pas besoin d'installer séparément comme un écran.
  5. Sa fonctionnalité est très spécifique à l'exécution d'un travail en arrière-plan et au déchargement d'une sortie. Faible mémoire

écran:

  1. Je dois installer séparément. Vous ne pouvez pas aller dans un centre de données ou vous connecter à une boîte et attendre que l'écran soit présent.
  2. Il est bon de gérer plusieurs terminaux sur des sujets distincts et de leur donner des noms.
  3. Son plus de gestionnaire de terminal et pas une commande pour exécuter un processus pour un temps infini comme nohup.
  4. C'est plus approprié si le processus nécessite l'intervention de l'utilisateur. Comme les scripts d'installation, les invites oui / non.
  5. Avec des tonnes de fonctionnalités, vient sa mémoire. Mais d'accord, certaines fonctionnalités sont vraiment géniales.

@rahmu, je ne devinerai jamais pid si je veux le tuer. Assurez-vous avant de tuer quelqu'un / quelque chose;).

La meilleure façon dans les deux cas pour l' écran et nohup est: ps -eaf | grep "nohup" | grep "your proc name/keyword".

Utilisez l'écran et vérifiez ce qui fonctionne dessus.

Pour conclure, ce sont deux choses différentes faites avec des ordres du jour différents, donc la comparaison est difficile.


20

l'écran a une tonne de fonctionnalités. Il ne s'agit pas simplement de "démoniser" un processus, il s'agit plutôt d'un gestionnaire de fenêtres pour les terminaux.

Il peut être utilisé si le processus nécessite une entrée à un moment donné, vous pouvez vérifier la sortie du processus, vous reconnecter à son terminal, ...

Donc non, ce n'est pas juste une question de préférence, ils ne sont pas du tout la même chose.


4
Vous pouvez également vérifier la sortie nohup [...] > fileName.log 2>&1. De plus, cela signifie que la sortie n'est pas perdue.
Sardathrion - Réintégrer Monica

1
J'aime cette description d'écran: "un gestionnaire de fenêtres pour terminaux"!
rickumali

7

screen te laisse:

  1. Revenez à l'écran actuel, envoyez des signaux, voyez à quelle vitesse ça va, voyez s'il y a des messages d'erreur, etc.
  2. nommer les processus avec un titre significatif. si vous voulez tuer un processus, vous n'avez pas à deviner son identifiant de processus.

-2
  1. la progression du processus peut également être vérifiée par le nohupdébogage des champs de la base de données.
  2. ps ax | grep nohup vous montrera l'identifiant du processus et vous pourrez le tuer.
  3. nohupest plus rapide. La raison en est simple: cela dépend de la connexion Internet entre votre PC et le serveur. Chaque fois qu'Internet ralentit, le processus se ralentit également.

2
Je ne comprends pas le point 3. Pouvez-vous élaborer?
Mattdm

1
le point 2 est incorrect.
jeudi

N ° 2 montrera que le processus ne tue que s'il n'y a qu'un seul processus nohup en cours d'exécution. Sinon, il va montrer plusieurs. Dans les deux cas, le point 2 n'est pas tout à fait incorrect.
Anil_M
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.