IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

redhat configurer locale pour tous les process


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut redhat configurer locale pour tous les process
    Bonjour,

    Je souhaite modifier le fichier :
    /etc/sysconfig/i18n pour y modifier les paramètres de langue.
    Je souhaite ensuite reconfiguré les locales de tous les utilisateurs et tous les process en cours d'utilisation sans rebooter.
    Est-ce possible?

    Merci.

  2. #2
    Membre expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Par défaut
    Salut,

    Alors, je serais tenté de te répondre "oui, on peut tout faire en Linux".

    Alors, voila la théorie :
    -> Un process hérite de l'environnement de son papounet, puis change ses propres valeurs s'il le souhaite.
    Et il serait extrêmement dangereux si les process pouvaient s'entre-modifier leur environnement (au niveau sécurité... ça serait cata)

    Donc, Non, ce n'est pas possible.
    C'est comme la blague du "génialissmesque programme `cd` "

    ... Maintenant, comme dit plus haut, rien ne t'empêche d'écrire un module kernel qui va faire la liste des process et pour chacun d'eux va aller y bidouiller.
    Voila... bon courage

    Bon, ceci dit, jette un oeil aux fichiers /proc/$PID/environ
    Tu y trouveras une partie de ton bonheur (tu pourras y lire l'environnement des applications, mais bien entendu, pas y écrire)

  3. #3
    Membre expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Par défaut
    Pardon,

    J'ai peut être pas bien compris.

    Il suffit que tu te reloguer puis relance toute tes applications et le tour est joué!

    Si tu peux relancer l'application avec ton nouvel environnement tout neuf, pas de problème. Par contre ne compte pas modifier à la voler l'environnement d'une application en cours d'exécution.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut script d'install
    Tout d'abord merci pour ta réponse.
    En fait ce que je cherche à faire c'est un script d'install pour une appli.
    Je dois installer tomcat, une jvm, postgres, bidouiller des fichiers de configs, m'assurer que i18n ne contient pas UTF-8 et ensuite installer l'appli en elle même. Et donc toutes ces opérations doivent se dérouler sans rebooter la machine (sauf bien sûr si je fais reprendre le script après la réouverture de session, ce qui complique un peu les choses).
    Pour ce qui est du module kernel, je ne suis pas certain d'avoir le niveau de compétence pour l'écrire, je n'ai jamais essayé.

  5. #5
    Membre expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Par défaut
    Normalement, il ne devrait pas y avoir de gros soucis.

    => Ce qu'il faut bien comprendre c'est que chaque process a ses propres valeurs LANG.
    Donc, à l'install, qu'importe ta valeur, tu peux la modifier ("tu" étant ton programme).... même si c'est pas propre (c'est l'utilisateur est est senser pouvoir y mettre ce qu'il souhaite)

    En shell script, tu la modifies avec la commande suivante
    [...]
    export LANG=zu_ZA.iso88591
    [...]
    Et pouf, ça fait du Sud Africain (enfin je crois) en iso88591 (latin-1 je crois).

    ensuite, toute les commandes que tu taperas à partir de ce moment depuis ce script seront lancé avec le paramètre LANG=zu_ZA.iso88591.

    Tout ce que fait le fichier i18n est de charger une valeur choisit comme "par défaut" par l'administrateur de la machine (aka root).

    est bien sur, pour vérifier la valeur courante, tu peux faire un `echo $LANG`.

    ==> Et, au final, rien ne t'empêche de faire un script de lancement de ton appli, qui va modifier manuellement la valeur de LANG puis lancer la vraie application.
    C'est facile :
    # LANG=tg_TJ.koi8t date

    La commande ci dessus de donnera la date en Tajik (langue parlé au Tajakistan ... merci Wikipedia... c'est fou ce qu'on apprend avec developpez.net!).
    De cette façon, seule la commande date et modifiée, la variable reprends sa valeur précédente ensuite.

    ==> A priori, si j'ai bien compris voici les solution qui se présentent à toi :

    1- ton script d'install modifie le fichier i18n. Dans ce cas il faut que les utilisateurs recharge le valeur LANG. Par exemple en se relogguant.

    2- le script de LANCEMENT de ton application modifie la valeur de l'application au lancement de celle ci. Tu n'as plus besoin de modifier quoi que se soit.


    ==================================
    Résumé :
    1- si tu fais rebooter ta machine, c'est mal
    2- une fois que tu a compris le truc, tu pourras trouver un moyen de d'adapter
    3- je ne peux pas décider de la meilleure méthode pour toi

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 27
    Par défaut merci
    Encore merci pour cette réponse très détaillée.
    Mon problème était que j'avais un script principal qui appelait d'autres scripts, qui appelaient d'autres scripts qui appelaient ... Je voulais propager les modifs de langue à tous les scripts en appelant un script chargé de faire cette opération.
    Je voulais mettre le script de changement de langue dans un script à part, car ce code peut-être executé à partir de différent script d'install. Je voulais factoriser, mais dans ce cas, ce n'est pas possible.
    Si je comprends bien, si je veux que l'environnement modifié soit propagé à tous les scripts, je dois mettre le script de modif de la langue dans le script principale qui appelle tous les autres.

    Je vais faire le test.

    Merci encore

Discussions similaires

  1. Configurer Eclipse pour tous les workspaces
    Par pmithrandir dans le forum Eclipse
    Réponses: 7
    Dernier message: 24/09/2009, 14h33
  2. TEdit numérique pour tous les claviers
    Par totofweb dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo