pour essayer de gérer correctement le démarrage et surtout l'arrêt d'un
processus arbitraire (avec les éventuels fils de ce processus) je suis
arrivé au résultat suivant (dans un bash):
Mon souci c'est que $cmd provient d'un fichier et pour un certain usage
on a défini cmd="LD_LIBRARY_PATH=/some/path /some/command" ce qui se
solde par LD_LIBRARY_PATH=/some/path: No such file or directory.
Vous auriez une idée pour améliorer ce cas, ou pour me dire comment je
peux utiliser setsid quand on souhaite définir un environnement
particulier ?
Merci.
Followup-To: fr.comp.os.linux.configuration
--
Sébastien Kirche
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
Jo Engo
Le Fri, 28 Jan 2022 17:14:06 +0100, Sébastien Kirche a écrit :
cmd="LD_LIBRARY_PATH=/some/path /some/command"
Je voudrais bien t'aider, mais j'ai un problème en amont : $ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ? Nonobstant, si je fais setsid !! j'ai une erreur comme toi mais c'est toto=titi qu'il prend pour le (path d')un script ou (d')une commande et il broute évidemment. Ce que je ferai Í ta place c'est que je mettrais ta commande dans un script readline (...) echo $ligne > /tmp/script chmod u+x /tmp/script (selon l'humeur de ton admin tu peux ne pas avoir le droit, changer de lieu, donc) setsid /tmp/script ... -- C'est nous qui faisons des femmes ce qu'elles valent et voila pourquoi elles ne valent rien. -+- Gabriel Honoré Riquetti, Compte de Mirabeau (1749-1791) -+-
Le Fri, 28 Jan 2022 17:14:06 +0100, Sébastien Kirche a écrit :
cmd="LD_LIBRARY_PATH=/some/path /some/command"
Je voudrais bien t'aider, mais j'ai un problème en amont :
$ toto="titi" /usr/bin/printf "%s" $toto
""
Je devrais avoir "titi" en sortie, non ?
Nonobstant, si je fais setsid !! j'ai une erreur comme toi mais c'est
toto=titi qu'il prend pour le (path d')un script ou (d')une commande et il
broute évidemment. Ce que je ferai Í ta place c'est que je mettrais ta
commande dans un script
readline (...)
echo $ligne > /tmp/script
chmod u+x /tmp/script (selon l'humeur de ton admin tu peux ne pas avoir le
droit, changer de lieu, donc)
setsid /tmp/script
...
--
C'est nous qui faisons des femmes ce qu'elles valent et voila pourquoi
elles ne valent rien.
-+- Gabriel Honoré Riquetti, Compte de Mirabeau (1749-1791) -+-
Le Fri, 28 Jan 2022 17:14:06 +0100, Sébastien Kirche a écrit :
cmd="LD_LIBRARY_PATH=/some/path /some/command"
Je voudrais bien t'aider, mais j'ai un problème en amont : $ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ? Nonobstant, si je fais setsid !! j'ai une erreur comme toi mais c'est toto=titi qu'il prend pour le (path d')un script ou (d')une commande et il broute évidemment. Ce que je ferai Í ta place c'est que je mettrais ta commande dans un script readline (...) echo $ligne > /tmp/script chmod u+x /tmp/script (selon l'humeur de ton admin tu peux ne pas avoir le droit, changer de lieu, donc) setsid /tmp/script ... -- C'est nous qui faisons des femmes ce qu'elles valent et voila pourquoi elles ne valent rien. -+- Gabriel Honoré Riquetti, Compte de Mirabeau (1749-1791) -+-
Olivier Miakinen
Le 30/01/2022 22:53, Jo Engo a écrit :
cmd="LD_LIBRARY_PATH=/some/path /some/command"
Je voudrais bien t'aider, mais j'ai un problème en amont : $ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ?
Non, parce que $toto est interprété par le shell avant d'exécuter la commande. En revanche : $ cat x /usr/bin/printf "%s" $toto $ toto="titi" ./x "titi"$ -- Olivier Miakinen
Le 30/01/2022 22:53, Jo Engo a écrit :
cmd="LD_LIBRARY_PATH=/some/path /some/command"
Je voudrais bien t'aider, mais j'ai un problème en amont :
$ toto="titi" /usr/bin/printf "%s" $toto
""
Je devrais avoir "titi" en sortie, non ?
Non, parce que $toto est interprété par le shell avant d'exécuter la commande.
En revanche :
$ cat x
/usr/bin/printf "%s" $toto
$ toto="titi" ./x
"titi"$
Je voudrais bien t'aider, mais j'ai un problème en amont : $ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ?
Non, parce que $toto est interprété par le shell avant d'exécuter la commande. En revanche : $ cat x /usr/bin/printf "%s" $toto $ toto="titi" ./x "titi"$ -- Olivier Miakinen
Nicolas George
Jo Engo , dans le message <st71de$2jf$, a écrit :
$ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ?
Non. Quel est ton raisonnement ?
Jo Engo , dans le message <st71de$2jf$7@shakotay.alphanet.ch>, a écrit :
$ toto="titi" /usr/bin/printf "%s" $toto
""
Je devrais avoir "titi" en sortie, non ?
Jo Engo , dans le message <st71de$2jf$, a écrit :
$ toto="titi" /usr/bin/printf "%s" $toto "" Je devrais avoir "titi" en sortie, non ?
Non. Quel est ton raisonnement ?
Jo Engo
Le 30 Jan 2022 23:00:46 GMT, Nicolas George a écrit :
Non. Quel est ton raisonnement ?
Voir la réponse d'OM. J'ai compris mon erreur… par contre de mon point de vue la partie intéressante de mon message (je reformule) : Au lieu de faire :
démarrage: eval "/usr/bin/setsid $cmd #etc.
echo $cmd > /tmp/programme chmod u+x /tmp/programme eval "/usr/bin/setsid /tmp/programme # etc. Enfin ce que j'en dis, hein. -- C'est un droit* qu'Í la porte on achète en entrant. * Le droit de siffler au théÍ¢tre -+- Nicolas Boileau, Art poétique -+-
Le 30 Jan 2022 23:00:46 GMT, Nicolas George a écrit :
Non. Quel est ton raisonnement ?
Voir la réponse d'OM. J'ai compris mon erreur… par contre de mon point de
vue la partie intéressante de mon message (je reformule)Â :
Le 30 Jan 2022 23:00:46 GMT, Nicolas George a écrit :
Non. Quel est ton raisonnement ?
Voir la réponse d'OM. J'ai compris mon erreur… par contre de mon point de vue la partie intéressante de mon message (je reformule) : Au lieu de faire :
démarrage: eval "/usr/bin/setsid $cmd #etc.
echo $cmd > /tmp/programme chmod u+x /tmp/programme eval "/usr/bin/setsid /tmp/programme # etc. Enfin ce que j'en dis, hein. -- C'est un droit* qu'Í la porte on achète en entrant. * Le droit de siffler au théÍ¢tre -+- Nicolas Boileau, Art poétique -+-
Pascal Hambourg
Le 28/01/2022 Í 17:14, Sébastien Kirche a écrit :
Mon souci c'est que $cmd provient d'un fichier et pour un certain usage on a défini cmd="LD_LIBRARY_PATH=/some/path /some/command" ce qui se solde par LD_LIBRARY_PATH=/some/path: No such file or directory.
Dans ton cas $cmd est une commande du shell alors que setsid attend un programme. Il faut donc passer en argument un shell qui va prendre la commande en argument. Du genre setsid /bin/sh -c $cmd
Le 28/01/2022 Í 17:14, Sébastien Kirche a écrit :
Mon souci c'est que $cmd provient d'un fichier et pour un certain usage
on a défini cmd="LD_LIBRARY_PATH=/some/path /some/command" ce qui se
solde par LD_LIBRARY_PATH=/some/path: No such file or directory.
Dans ton cas $cmd est une commande du shell alors que setsid attend un
programme. Il faut donc passer en argument un shell qui va prendre la
commande en argument. Du genre
Mon souci c'est que $cmd provient d'un fichier et pour un certain usage on a défini cmd="LD_LIBRARY_PATH=/some/path /some/command" ce qui se solde par LD_LIBRARY_PATH=/some/path: No such file or directory.
Dans ton cas $cmd est une commande du shell alors que setsid attend un programme. Il faut donc passer en argument un shell qui va prendre la commande en argument. Du genre setsid /bin/sh -c $cmd
Jo Engo
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
setsid /bin/sh -c $cmd
Oui c'est mieux. -- Je ne crois que les histoires dont les témoins se feraient égorger. -+- Blaise Pascal (1623-1662), Pensées - IX.593 -+-
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
setsid /bin/sh -c $cmd
Oui c'est mieux.
--
Je ne crois que les histoires dont les témoins se feraient égorger.
-+- Blaise Pascal (1623-1662), Pensées - IX.593 -+-
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
setsid /bin/sh -c $cmd
Oui c'est mieux. -- Je ne crois que les histoires dont les témoins se feraient égorger. -+- Blaise Pascal (1623-1662), Pensées - IX.593 -+-
Sébastien Kirche
Le 3 février 2022 Í 20:11, Jo Engo a formulé :
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
setsid /bin/sh -c $cmd
Oui c'est mieux.
Pas ici: setsid: failed to set the controlling terminal: inappropriate ioctl for device setsid: failed to execute <contenu de $cmd avec variable + commande> Dans le man, j'avais vu "-c / --ctty set the controlling terminal to the current one" Vous ne confondriez pas avec un -c <commande> ? Parce que dans ce cas, ça va coincer, le script qui lance la commande setsid est appelé par cron. Alternative : est-ce que ça pourrait se faire par un "setsid sh -c $cmd" ? Ça commence Í être tordu :( -- Sébastien Kirche
Le 3 février 2022 Í 20:11, Jo Engo a formulé :
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
> setsid /bin/sh -c $cmd
Oui c'est mieux.
Pas ici:
setsid: failed to set the controlling terminal: inappropriate ioctl for device
setsid: failed to execute <contenu de $cmd avec variable + commande>
Dans le man, j'avais vu "-c / --ctty set the controlling terminal to the
current one"
Vous ne confondriez pas avec un -c <commande> ? Parce que dans ce cas,
ça va coincer, le script qui lance la commande setsid est appelé par cron.
Alternative : est-ce que ça pourrait se faire par un "setsid sh -c
$cmd" ? Ça commence Í être tordu :(
Le Tue, 1 Feb 2022 15:28:34 +0100, Pascal Hambourg a écrit :
setsid /bin/sh -c $cmd
Oui c'est mieux.
Pas ici: setsid: failed to set the controlling terminal: inappropriate ioctl for device setsid: failed to execute <contenu de $cmd avec variable + commande> Dans le man, j'avais vu "-c / --ctty set the controlling terminal to the current one" Vous ne confondriez pas avec un -c <commande> ? Parce que dans ce cas, ça va coincer, le script qui lance la commande setsid est appelé par cron. Alternative : est-ce que ça pourrait se faire par un "setsid sh -c $cmd" ? Ça commence Í être tordu :( -- Sébastien Kirche