OVH Cloud OVH Cloud

nohup ne redirige pas la sortie standard vers nohup.out

3 réponses
Avatar
ctobini
Bonjour,

J'ai =E9crit un script Perl travaillant sur un tr=E8s gros fichier, le
r=E9sultat est dirig=E9 vers un fichier tandis qu'un compteur sur la
sortie standard indique o=F9 en est la lecture du fichier d'entr=E9e.

Le script s'ex=E9cutant sur un serveur (Tiger), je souhaite le lancer
avec 'nohup' (le shell est bash). D'apr=E8s ce que j'ai pu en lire,
nohup redirige la sortie standard vers un fichier nohup.out.

Mon probl=E8me est que mon fichier de sortie se rempli correctement
(apparement) mais nohup.out reste vide, et je dois absolument pouvoir
v=E9rifier l'avanc=E9e du traitement.

En sauriez-vous un peu plus =E0 ce sujet ?

En vous remerciant,

C=2E Tobini

3 réponses

Avatar
patpro ~ Patrick Proniewski
In article ,
"ctobini" wrote:

Bonjour,

J'ai écrit un script Perl travaillant sur un très gros fichier, le
résultat est dirigé vers un fichier tandis qu'un compteur sur la
sortie standard indique où en est la lecture du fichier d'entrée.

Le script s'exécutant sur un serveur (Tiger), je souhaite le lancer
avec 'nohup' (le shell est bash). D'après ce que j'ai pu en lire,
nohup redirige la sortie standard vers un fichier nohup.out.

Mon problème est que mon fichier de sortie se rempli correctement
(apparement) mais nohup.out reste vide, et je dois absolument pouvoir
vérifier l'avancée du traitement.

En sauriez-vous un peu plus à ce sujet ?



pas vraiment, mais moi j'affectionne screen pour ce genre de boulot.
Si tu tiens vraiment a nohup, as tu vérifié que les droits d'écritures
sont bons dans le répertoire de lancement ?


patpro

--
http://www.patpro.net/

Avatar
ctobini
Merci beaucoup, je ne connaissais pas la commande et après l'avoir
manipulée, c'est vrai que c'est vraiment ce que je cherchais: la
possibilité de récupérer un terminal après une coupure de connexion.

Bonne journée et à +,

C. Tobini

On 6 fév, 11:33, patpro ~ Patrick Proniewski
wrote:
In article ,



"ctobini" wrote:
Bonjour,

J'ai écrit un script Perl travaillant sur un très gros fichier, le
résultat est dirigé vers un fichier tandis qu'un compteur sur la
sortie standard indique où en est la lecture du fichier d'entrée.

Le script s'exécutant sur un serveur (Tiger), je souhaite le lancer
avec 'nohup' (le shell est bash). D'après ce que j'ai pu en lire,
nohup redirige la sortie standard vers un fichier nohup.out.

Mon problème est que mon fichier de sortie se rempli correctement
(apparement) mais nohup.out reste vide, et je dois absolument pouvoir
vérifier l'avancée du traitement.

En sauriez-vous un peu plus à ce sujet ?


pas vraiment, mais moi j'affectionne screen pour ce genre de boulot.
Si tu tiens vraiment a nohup, as tu vérifié que les droits d'écritu res
sont bons dans le répertoire de lancement ?

patpro

--http://www.patpro.net/



Avatar
Vincent Lefevre
Dans l'article ,
ctobini écrit:

J'ai écrit un script Perl travaillant sur un très gros fichier, le
résultat est dirigé vers un fichier tandis qu'un compteur sur la
sortie standard indique où en est la lecture du fichier d'entrée.

Le script s'exécutant sur un serveur (Tiger), je souhaite le lancer
avec 'nohup' (le shell est bash). D'après ce que j'ai pu en lire,
nohup redirige la sortie standard vers un fichier nohup.out.

Mon problème est que mon fichier de sortie se rempli correctement
(apparement) mais nohup.out reste vide, et je dois absolument pouvoir
vérifier l'avancée du traitement.


Tu as la solution screen déjà proposée, mais tu ne perdras rien à
flusher automatiquement l'output, au cas où tu voudrais parfois le
résultat dans un fichier:

use IO::Handle;

STDOUT->autoflush(1);
STDERR->autoflush(1);

Normalement, pour STDERR, il devrait y avoir le flush par défaut,
mais au cas où... Le flush est également utile dans un terminal si
tu fais un print "...r" au lieu de print "...n".

En ce qui me concerne, pour tout ce qui est logging, j'utilise warn.
Je peux choisir de rediriger à la fois dans un fichier et sur le
terminal avec quelque chose du style:

$SIG{__WARN__} = sub { print STDERR $_[0]; print SAVEERR $_[0]; };

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)