Modification de la variable d'environnement d'un processus en cours d'exécution
J'ai un script qui exporte une variable d'environnement et commence quelques indices.
export LOGLEVEL="1"
/home/myuser/bin/myscript1.sh
/home/myuser/bin/myscript2.sh
LOGLEVEL
est disponible pour le processus commence à partir de l'indice. Comment puis-je changer la variable d'environnement LOGLEVEL
?
J'ai essayé de définir la variable avec export LOGLEVEL="5"
mais qui ne fonctionne pas.
- double possible de Est-il un moyen de changer l'autre du processus de variables d'environnement?
- Où voulez-vous le niveau de JOURNALISATION changé et pour ce processus - comme vous le dites, il a changé pour les deux myscript processus.
- Il n'a pas d'importance si LOGLEVEL est changé pour le processus de deux indices, ou si je peux le changer pour chaque processus. Essentiellement, je suis à la recherche pour n'importe quel travail sens de parler à un processus, qu'il doit imprimer plus d'informations dans son journal.
- ensuite, vous avez besoin de nous montrer comment vous utilisez LOGLEVEL dans les scripts
- Désolé que je n'ai pas assez précis, mais LOGLEVEL n'est exporté dans le script, il est utilisé dans le cadre des processus à travers
getenv()
. - Par conséquent, la modification que vous avez fait une incidence sur ce que les scripts d'impression, car ils utilisent la fonction getenv - que voulez-vous précisément?
- Le script lance un certain nombre de processus après que le système a démarré. Le processus de l'impression de certaines informations dans leurs fichiers de log en fonction de la variable d'environnement LOGLEVEL. Maintenant, je veux changer le comportement des processus sans redémarrer.
- J'ai juste ajouté une suggestion de ma réponse ci-dessous.
Vous devez vous connecter pour publier un commentaire.
En général, vous ne pouvez influencer un processus de variables d'environnement à la fois le processus démarre. Si vous avez besoin de communiquer un changement à un processus en cours d'exécution, l'environnement n'est pas le bon outil.
Cependant, cette question a quelques réponses qui proposent des façons de surmonter cette limitation.
Édité pour ajouter à la lumière de la discussion de la question du commentaires: Un assez bon moyen de communiquer parfois de changer de configuration à un processus en cours d'exécution est de désigner un fichier de configuration où le niveau de JOURNALISATION valeur est définie, d'envoyer un signal SIGHUP au processus, et le processus de relire le fichier de configuration lors de la réception d'un signal SIGHUP.