chaîner des applications au démarrage

Le
Daniel Caillibaud
Bonjour,

J'ai comme application au démarrage de ma session un script qui monte
localement un container chiffré (avec demande de passphrase en console=
), ça
fonctionne bien mais j'arrive pas à enchaîner une autre commande.

Autrement dit, en mettant dans applications au démarrage / monTrucPers=
o la
commande "commande1 && commande2" commande2 n'est jamais exécutée=
même si
commande1 sort correctement.

Y'a un moyen de contourner ça ?

La commande est :
gnome-terminal --command=monScript && autreProgramme

(et ça marche pas en mettant le lancement de autreProgramme à la =
fin de
monScript, je suppose pour des pbs de display, pas creusé car ça =
me semble
un peu idiot sur le principe, monScript devant rester indépendant il
faudrait un monScriptPlusAutreProgramme juste pour enchaîner deux comm=
andes)

--
Daniel

Mieux vaux fermer sa gueule et passer pour un con
que de l'ouvrir et ne laisser aucun doute à ce sujet.
Coluche
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
=?iso-8859-1?q?Ga=EBtan?= Perrier
Le #26474999
--=-HdyRlAvM5RKLrXAEIXEn
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Le mercredi 16 mai 2018 à 09:38 +0200, Daniel Caillibaud a écrit :
La commande est :
gnome-terminal --command=monScript && autreProgramme


Et en mettant
gnome-terminal --command="monScript && autreProgramme"
ou
gnome-terminal --command='monScript && autreProgramme'
Gaëtan
--=-HdyRlAvM5RKLrXAEIXEn
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part
Content-Transfer-Encoding: 7bit
-----BEGIN PGP SIGNATURE-----
iQEzBAABCgAdFiEEd7zcTjS9jiJYzB4MTEjQapSg6ZkFAlr8F1IACgkQTEjQapSg
6Zls5gf/QZM3E3EStZxH3/oN2QIm7YLBOKzI4nRC4fmpPL8Bo8W9hbOdz7uTyhHn
0qwtk/TT1XZviNVavKEDZpKtCALQLf4k1KOKtifNjNhRiTcpaWV22CW8QSwf9ERf
dehb/4Fw/ENcRdufdgn1VKaStD6jkxoyyAy9IHUOlQhcwYbizuOJTmcmea59CHpl
gkjf5LwB9cpqgilMvTH7VrMDf0OeOcvY1FNieNpmUBhldbWirx6m/0+Ktd+k06+e
YyP+0AD0+g4KeqM0CdPYbptB7xn1Pwl5X3As2uOKLizxGqSAjfoX5BR4JUnbewCg
g986evwRePa+4PN/ukG0TJ52xrAGrA= =jB6d
-----END PGP SIGNATURE-----
--=-HdyRlAvM5RKLrXAEIXEn--
Daniel Caillibaud
Le #26475019
--Sig_/Kf3_TrN4dPfPO6SZ.p_yGBZ
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Le 16/05/18 à 13:34, Gaëtan Perrier GP> Le mercredi 16 mai 2018 à 09:38 +0200, Daniel Caillibaud a éc rit :
GP> >
GP> > La commande est :
GP> > gnome-terminal --command=monScript && autreProgramme
GP> >
GP>
GP> Et en mettant
GP>
GP> gnome-terminal --command="monScript && autreProgramme"
J'ai quand même testé, mais je vois pas vraiment comment ça aurait pu
marcher (autreProgramme n'est pas un script mais un logiciel ayant besoin
de son environnement graphique).
J'ai essayé avec --execute sans quoting, et sans succès…
Je suis avec cinnamon. Faut écrire deux services systemd pour un truc aussi
basique ?
--
Daniel
Non seulement nous n'avons pas les principes qui mènent au vrai,
mais nous en avons d'autres qui s'accommodent bien avec le faux.
Bernard Fontenelle
--Sig_/Kf3_TrN4dPfPO6SZ.p_yGBZ
Content-Type: application/pgp-signature
Content-Description: Signature digitale OpenPGP
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEADfQ+f/aaYwJK3rH4XBP4P50wyAFAlr8WAgACgkQ4XBP4P50
wyDA2Q/8CAPyzle8fORoK8hOQDA+TeRScUGg51u7vufWQxRaQoaVjK1A/lpwKZD2
Dq4/F17ebP+VkhfELmbHRfdwI3pFJKIKgLzdpnIJF58i1O/VgcGZ41oWA5oq3Gau
GB2dUMsJZWt8B0eSXkmg92qECfJJnZ1nIOmbXB9olOxB2qySGzRFxR0VBSuXphlw
3OA4L0ezAiaDV1fG4iX8i8tJCUYQ5HjI6lg58hcCVk2Qi9lmuo80P/0fH1YBroFL
9qF0qiYqooT6wX0CnGvsw46ppW65c17Wo+tgCX//EvLe51p2OHOWcD+LLQi2N5CP
qwIEVNmNCe4fLrnSISyARZNn+CGP+tK5Ar5Awvr1rOt0MxwpV2bKcID0kDq21fpI
8QvqDItXR/KmL1mK/RK88jGV+4Nw8ldEGsPxkE924dc0M0dOxT1k8Q1YtjxGUJuW
0/HiKtYP5aOXuW6RnuqODowEtQVWUjSggfye55xiwmcVAZ5xt3dyYS9BYydojYmd
EtGRDXe/p5w9bmWuDivv6lUIvl+uaJqTK7VBEe/AEgCmqUtrHaXGi5NJNy+EwwhZ
CsRq0IVJk4sO1fxrDKy2ZUW+ObmqIO0IQ3TF8cAGCG4KKl5b9utqnQYIEuPDMyEH
rRasupOeKIH+UAN4BzeaJAEcRQUcNLsa0L5ZLeBBG6qOj8JnRCQ =nJwK
-----END PGP SIGNATURE-----
--Sig_/Kf3_TrN4dPfPO6SZ.p_yGBZ--
=c3
Le #26475177
Bonsoir,
Daniel Caillibaud, le 2018-05-06 :
Autrement dit, en mettant dans applications au démarrage /
monTrucPerso la commande "commande1 && commande2" commande2
n'est jamais exécutée même si commande1 sort correctement.

Présenté comme ça, en temps normal, la "commande2" devrait être
exécutée dès l'instant où la "commande1" envoie un code de
retour nul.
Certains programme peuvent renvoyer des codes non nuls sans pour
autant être en erreur, pour signifier un résultat intéressant.
Typiquement "diff" renvoie 0 quand deux fichiers sont
identiques, et 1 quand ils sont différents ; pourtant il n'y a
pas eu d'erreurs particulières.
Y'a un moyen de contourner ça ?

En utilisant le séparateur inconditionnel ";" au lieu d'utiliser
"&&", il y a un moyen, oui. Mais peut-être que vous vous voulez
tout de même exécuter commande2 sous certaines conditions,
dépendantes du bon déroulement de commande1. Vous aviez parlé
de login...
La commande est :
gnome-terminal --command=monScript && autreProgramme

Il faudrait vérifier le code de retour de la première commande.
En considérant que vous vouliez bien avoir la correspondance
suivante :
command1 := gnome-terminal --command=monScript
command2 := autreProgramme
Vous pouvez lancer la commande suivante au besoin, pour obtenir
ce code d'erreur :
gnome-terminal --command=monScript ; echo "exit code $?"
Est-ce que ça vous ouvre des pistes ?
À plus,
--
Étienne Mollier
Daniel Caillibaud
Le #26475339
Le 17/05/18 à 20:58, Étienne Mollier
Présenté comme ça, en temps normal, la "commande2" devrait être
exécutée dès l'instant où la "commande1" envoie un co de de
retour nul.

Oui, mais quand c'est dans du `Exec` d'un ~/.config/autostart/truc.desktop
ça marche pas, en tout cas avec cinnamon.
En utilisant le séparateur inconditionnel ";" au lieu d'utiliser
"&&", il y a un moyen, oui. Mais peut-être que vous vous voulez
tout de même exécuter commande2 sous certaines conditions,
dépendantes du bon déroulement de commande1. Vous aviez parl é
de login...

Oui, le 1er script monte un container chiffré si on saisi la bonne
passphrase, et ensuite si c'est passé je veux lancer autre chose qui va
lire un truc dans ce container déchiffré.
Il faudrait vérifier le code de retour de la première commande.
Est-ce que ça vous ouvre des pistes ?

Ça confirme que le && ne fonctionne pas dans un autostart.
En console si je lance ma commande complète ça fonctionne bien, l a première
commande sort bien avec un $? valant 0
pour tester, se créer par ex
1) dans /home/bin/test.sh
#!/bin/bash
echo "$0 OK"
sleep 2
2) un .config/autostart/test.desktop avec
[Desktop Entry]
Type=Application
Exec=xterm -e /home/bin/test.sh && xterm -e /home/bin/test.sh
X-GNOME-Autostart-enabled=true
NoDisplaylse
Hiddenlse
Name[fr_FR]=test autostart
Comment[fr_FR]=
X-GNOME-Autostart-Delay=0
idem avec
Exec=gnome-terminal --command=/home/bin/test.sh && gnome-terminal
--command=/home/bin/test.sh
--
Daniel
L'utopie ne signifie pas l'irréalisable, mais l'irréalisé.
T Monod
=c3
Le #26475341
Bonsoir,
On 05/18/2018 06:56 PM, Daniel Caillibaud wrote:
Le 17/05/18 à 20:58, Étienne Mollier
Présenté comme ça, en temps normal, la "commande2" devrait
être exécutée dès l'instant où la "commande1" envoie un code
de retour nul.

Oui, mais quand c'est dans du `Exec` d'un
~/.config/autostart/truc.desktop ça marche pas, en tout cas
avec cinnamon.

Ah ok, en dehors du contexte d'un shell, il n'est possible de
spécifier que des commandes et leurs arguments. Mais il n'est
pas possible d'utiliser directement les commandes intégrées d'un
shell comme "&&" ou plus généralement "if", "while", etc.
Il devrait être possible de contourner ça en lançant ledit shell
manuellement :
Exec=sh -c "gnome-terminal --command=monScript && autreProgramme"
Est-ce qu'il y a du mieux comme ceci ?
À plus,
--
Étienne Mollier
Daniel Caillibaud
Le #26476530
re,
Désolé pour le délai de réponse
Le 18/05/18 à 19:18, Étienne Mollier
Ah ok, en dehors du contexte d'un shell, il n'est possible de
spécifier que des commandes et leurs arguments. Mais il n'est
pas possible d'utiliser directement les commandes intégrées d'un
shell comme "&&" ou plus généralement "if", "while", etc.

Logique, j'aurais dû me douter que l'entrée "commande" des applic ations au
démarrage n'était pas lancée par un shell.
Il devrait être possible de contourner ça en lançant ledit shell
manuellement :
Exec=sh -c "gnome-terminal --command=monScript && autreProgramme"
Est-ce qu'il y a du mieux comme ceci ?

J'y croyais, mais non, ça n'a pas voulu, j'avais dans mon fichier (dan s ~/.config/autostart)
Exec=sh -c "gnome-terminal --command='sudo /path/to/script.sh' && /us r/bin/keepassxc /path/to/passlist.kdbx"
Le script est bien lancé en sudo, sort avec un code 0 mais ça lan ce pas
keepassxc :-(
J'ai finalement crée un 2e scrip, ça donne dans l'autostart
Exec=/path/to/scriptChained.sh
et dans ce script
if sudo /path/to/script.sh
then
nohup /usr/bin/keepassxc /path/to/passlist.kdbx > /dev/null &
else
echo "mount KO => keypass pas lancé :-/"
fi
et ça marche enfin…
Merci à tous ceux qui ont donné des pistes
--
Daniel
On réalise qu'une femme est de la dynamite quand on la laisse tomber.
Marcel Pagnol.
Daniel Caillibaud
Le #26476653
Le 29/05/18 à 16:44, Daniel Caillibaud DC> J'ai finalement crée un 2e scrip, ça donne dans l'autostart
DC>
DC> Exec=/path/to/scriptChained.sh
DC>
DC> et dans ce script
DC>
DC> if sudo /path/to/script.sh
DC> then
DC> nohup /usr/bin/keepassxc /path/to/passlist.kdbx > /dev/null &
DC> else
DC> echo "mount KO => keypass pas lancé :-/"
DC> fi
DC>
DC> et ça marche enfin…
Ça a fonctionné quand je l'ai testé, mais pas ce matin :-/
Je lâche l'affaire… (et fait un clic de plus à chaque boo t pour lancer
keepassxc manuellement après montage)
--
Daniel
Révolution française, Un Corse la finira.
Alphonse Allais, Anagrammes
Publicité
Poster une réponse
Anonyme