Dans un script perl j'utilise mes variables d'environnement classiquement
comme suit
export TOTO=titi;
puis dans le script scr.pl:
if (defined($ENV{'TOTO'} && $ENV{'TOTO'} eq 'titi') {
....
}
La question est lorsque je lance
export TOTO=titi;
nohup scr.pl &
Et qu'ensuite je clos ma session alors que le script continue en tâche de
fond, quelle valeur est sensée prendre la variable $ENV{'TOTO'} ?
Y a t'il une manière saine de procéder avec ou sans (je préfère)
modification de mon script ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal Bourguignon
"Gibier Jean-Charles" writes:
Dans un script perl j'utilise mes variables d'environnement classiquement comme suit export TOTO=titi; puis dans le script scr.pl: if (defined($ENV{'TOTO'} && $ENV{'TOTO'} eq 'titi') { .... }
La question est lorsque je lance
export TOTO=titi; nohup scr.pl &
Et qu'ensuite je clos ma session alors que le script continue en tâche de fond, quelle valeur est sensée prendre la variable $ENV{'TOTO'} ? Y a t'il une manière saine de procéder avec ou sans (je préfère) modification de mon script ?
Les variables d'environnement sont copiées au moment du fork comme tout le reste de la mémoire.
(C'est pour ça qu'on ne peut pas modifier les variables d'environnement dans le processus parent, seulement dans le processus courrant et les prochains fils).
-- __Pascal Bourguignon__ http://www.informatimago.com/ The world will now reboot; don't bother saving your artefacts.
Dans un script perl j'utilise mes variables d'environnement classiquement
comme suit
export TOTO=titi;
puis dans le script scr.pl:
if (defined($ENV{'TOTO'} && $ENV{'TOTO'} eq 'titi') {
....
}
La question est lorsque je lance
export TOTO=titi;
nohup scr.pl &
Et qu'ensuite je clos ma session alors que le script continue en tâche de
fond, quelle valeur est sensée prendre la variable $ENV{'TOTO'} ?
Y a t'il une manière saine de procéder avec ou sans (je préfère)
modification de mon script ?
Les variables d'environnement sont copiées au moment du fork comme
tout le reste de la mémoire.
(C'est pour ça qu'on ne peut pas modifier les variables
d'environnement dans le processus parent, seulement dans le processus
courrant et les prochains fils).
--
__Pascal Bourguignon__ http://www.informatimago.com/
The world will now reboot; don't bother saving your artefacts.
Dans un script perl j'utilise mes variables d'environnement classiquement comme suit export TOTO=titi; puis dans le script scr.pl: if (defined($ENV{'TOTO'} && $ENV{'TOTO'} eq 'titi') { .... }
La question est lorsque je lance
export TOTO=titi; nohup scr.pl &
Et qu'ensuite je clos ma session alors que le script continue en tâche de fond, quelle valeur est sensée prendre la variable $ENV{'TOTO'} ? Y a t'il une manière saine de procéder avec ou sans (je préfère) modification de mon script ?
Les variables d'environnement sont copiées au moment du fork comme tout le reste de la mémoire.
(C'est pour ça qu'on ne peut pas modifier les variables d'environnement dans le processus parent, seulement dans le processus courrant et les prochains fils).
-- __Pascal Bourguignon__ http://www.informatimago.com/ The world will now reboot; don't bother saving your artefacts.