Forum Programmation.shell inittab et dialog

Posté par  (site web personnel) .
Étiquettes : aucune
0
19
juil.
2006
Bonjour,

J'ai développé un petit script bash+dialog qui offre quelques taches de monitoring/admin simplifié (suivit de l'activité reseau, cpu, reboot de la machine...)

Mon idée étant de le lancer en console pour avoir une petite interface d'admin sur mon serveur sans avoir à se logger. J'ai donc remplacé dans /etc/inittab le getty de tty1 par mon script.

Il se lance bien et semble à peu-prêt fonctionnel. Mais l'affichage est mauvais, j'ai des décalages dans les lignes, et certaines semblent plus courtes que d'autres. Bref dialog semble ne pas fonctionner au mieux :(
Je soupçonne un problème de TERM, mais je ne vois pas très bien comment régler cela. est-ce que quelqu'un a une idée ?

question subsidiaire: le Ctrl-C semble ne pas fonctionner non plus, est-ce normal ?
  • # hum

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    donne un lien où le télécharger pour qu'il puisse être testé et que des bienfaiteurs t'envoi un patch !

    M.
    • [^] # Re: hum

      Posté par  (site web personnel) . Évalué à 2.

      Bon, pour le moment, c'est pas encore très propre comme code (ca date de hier soir), mais je viens quand même de le mettre la :
      http://kubuntu.free.fr/easyadmin/

      Il y a quelques dépendances qui sont indiquées en début de fichier, et aussi un chemin à changer pour positionner le path.
      • [^] # Re: hum

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        pour le problème d'affichage c'est surement un pb de locales essaye de mettre LANG=fr_FR.UTF-8 ou LANG=UTF-8 (selon l'OS) au début de ton script.

        sinon pour le ctrl-c c'est sans doutes du au fait que tu utilises respawn sans ton innitab (voir man inittab) pour avoir une option qui va mieux (respawn relance éternellement le programme lorsqu'il se termine)

        cepandant il est possible que tu est d'autre problème ensuite (entrées / sorties) et gestion du clavier, à voir ..

        de plus pour ton script je te conseille de parser /proc/net/dev pour récupérer les interface du système plutôt que d'utiliser netstat -i ...

        M.
        • [^] # Re: hum

          Posté par  (site web personnel) . Évalué à 2.

          Yes ! C'était effectivement un problème de locale . Je ne sais vraiment pas comment tu as pu comprendre ca :-?
          Avec LANG et TERM de positionnés, tout est ok au niveau de l'affichage et de l'utilisation. Merci.

          Quand au Ctrl-C, je ne pense pas que cela vienne du respawn, car
          * si je tue mon script, je le vois bien se recharger alors que le Ctrl-C ne fait rien
          * sir je fais Ctrl-C dans un programme lancé par mon script (tcpdump par exemple) il n'est pas pris en compte (ie: tcpdump continue comme si de rien n'etait)
          peut-être que c'est mon trap qui pose problème, il faut que je pousse un peu mes tests.

          Pour le /proc/net/dev, je vais regarder cela. Quel en est l'avantage ? Gagner en perfs ? Je suppose que le netstat se fournit à cette même source non ?
  • # $TERM

    Posté par  . Évalué à 2.

    Si je me logue en console sur un des tty et que je lance la commande suivante :

    export |grep -i term

    ... j'obtient le contenu de la variable d'environnement $TERM. Chez moi il s'agit de "linux" sur une debian et de "dtterm" sur un Solaris. Bref essaie de faire par exemple un export TERM="linux" avant de lancer ton interface dialog, peut-être que l'affichage sera meilleur.

    Ici[1], il est dit que la valeur "linux" est désormais standard et que les applications curses devraient apprécier. Sinon, il y aurait aussi "console", "con80x25" ou "linux-80x25" à tester.

    Tu peux aussi essayer de jouer avec la commande setterm qui semble permettre la modification de certaines options du terminal.

    [1] http://www.unixtech.be/docs/howtos/Keyboard-HOWTO-11.html
    • [^] # Re: $TERM

      Posté par  (site web personnel) . Évalué à 2.

      J'ai pu faire quelques tests rapides ce midi en positionnant la variable TERM.
      * linux, ne change rien (tout seul)
      * console, linux-80x25 sont inconnus
      * xterm donne un affichage correct (sans decalage), mais tous les caractères spéciaux (de cadre) sont remplacés par des lettres
      la solution semble être la variable LANG.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.