Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

chaîner des applications au démarrage

7 réponses
Avatar
Daniel Caillibaud
Bonjour,

J'ai comme application au d=C3=A9marrage de ma session un script qui monte
localement un container chiffr=C3=A9 (avec demande de passphrase en console=
), =C3=A7a
fonctionne bien mais j'arrive pas =C3=A0 encha=C3=AEner une autre commande.

Autrement dit, en mettant dans applications au d=C3=A9marrage / monTrucPers=
o la
commande "commande1 && commande2" commande2 n'est jamais ex=C3=A9cut=C3=A9e=
m=C3=AAme si
commande1 sort correctement.

Y'a un moyen de contourner =C3=A7a ?

La commande est :
gnome-terminal --command=3DmonScript && autreProgramme

(et =C3=A7a marche pas en mettant le lancement de autreProgramme =C3=A0 la =
fin de
monScript, je suppose pour des pbs de display, pas creus=C3=A9 car =C3=A7a =
me semble
un peu idiot sur le principe, monScript devant rester ind=C3=A9pendant il
faudrait un monScriptPlusAutreProgramme juste pour encha=C3=AEner deux comm=
andes)

--=20
Daniel

Mieux vaux fermer sa gueule et passer pour un con=20
que de l'ouvrir et ne laisser aucun doute =C3=A0 ce sujet.
Coluche

7 réponses

Avatar
=?iso-8859-1?q?Ga=EBtan?= Perrier
--=-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--
Avatar
Daniel Caillibaud
--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 a écrit :
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--
Avatar
=c3
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
Avatar
Daniel Caillibaud
Le 17/05/18 à 20:58, Étienne Mollier a écrit :
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
NoDisplayúlse
Hiddenúlse
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
Avatar
=c3
Bonsoir,
On 05/18/2018 06:56 PM, Daniel Caillibaud wrote:
Le 17/05/18 à 20:58, Étienne Mollier a écrit :
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
Avatar
Daniel Caillibaud
re,
Désolé pour le délai de réponse
Le 18/05/18 à 19:18, Étienne Mollier a écrit :
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.
Avatar
Daniel Caillibaud
Le 29/05/18 à 16:44, Daniel Caillibaud a écr it :
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