Pourquoi moins de mode queue cesse-t-il de fonctionner?

11

L'utilisation de la lesscommande sous Linux en mode queue (commande F ou moins -f) arrête systématiquement de travailler sur certaines machines et / ou certains fichiers. De nouveaux changements cessent simplement d'apparaître.

Je sais que j'ai corrigé cela avant, il y a longtemps, mais je ne me souviens pas quelle était la solution.

Des idées?

ARBRE
la source
Avez-vous essayé d'utiliser strace pour voir ce qu'il fait (pas)? Vous verrez peut-être une erreur.
wfaulk
Pour info, cela reste sans réponse car le fichier en question n'était pas roulé / tourné / recréé.
TREE

Réponses:

12

Essayez d'utiliser less --follow-name. Même si le fichier porte le même nom, le ou les processus de mise à jour le font d'une manière qui modifie l'inode du fichier - donc du point de vue du système d'exploitation, c'est un nouveau fichier après les mises à jour.

Doug Harris
la source
+1 réponse parfaite, c'est pourquoi cette option a été introduite. Notez qu'il a --follow-nameété introduit dans moins de v415 ( greenwoodsoftware.com/less/news.415.html ), publié le 15 novembre 2007. Ainsi, l'ancienne installation Linux peut ne pas l'avoir.
sleske
3

Consultez-vous les fichiers journaux qui sont tournés par logrotate? Si le fichier que less visualise est renommé (par exemple, de log en log.0 par logrotate), less continuera de regarder ce fichier, même si de nouvelles entrées sont écrites dans un fichier différent (avec le nom d'origine).

Randy Orrison
la source
Si tel est le cas, essayez tail --follow = name [filename] (ce qui oblige tail à rouvrir périodiquement le fichier au cas où il serait renommé). Voir gnu.org/software/coreutils/manual/html_node/…
Randy Orrison
Non, les journaux ne tournent pas. C'est le même fichier.
TREE
1

vous pourriez peut-être essayer à la tail -f [filename]place?

brandstaetter
la source
4
Avec moins, vous pouvez "mettre votre queue en pause" (en utilisant Ctrl-c) pour remonter jusqu'à une ligne spécifique et reprendre plus tard (en utilisant F). C'est pourquoi dans certains cas, il est préférable à "tail -f".
Dogbane
tail -f fonctionne, mais je préfère travailler avec moins.
TREE
Je vois. Ne savais pas ça.
brandstaetter
0

Oui less +F --follow-name. --follow-namesurveille simplement le fichier avec le même nom sans recevoir les modifications entrantes dans mon cas (CentOS 7).

En fait, je crée un alias pour cela:

Ajoutez cette ligne dans /etc/profile.d/alias.sh:

alias lf="less +F --follow-name"

Enregistrez-le et sourcez-le pour l'utiliser maintenant. . /etc/profile.d/alias.sh

WesternGun
la source