chaîner des applications au démarrage

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

chaîner des applications au démarrage

Daniel Caillibaud-5
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 / monTrucPerso 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 commandes)

--
Daniel

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

Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Gaëtan PERRIER-3
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

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Daniel Caillibaud-5
Le 16/05/18 à 13:34, Gaëtan Perrier <[hidden email]> a écrit :

GP> Le mercredi 16 mai 2018 à 09:38 +0200, Daniel Caillibaud a écrit :
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

attachment0 (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Étienne Mollier
In reply to this post by Daniel Caillibaud-5
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 <[hidden email]>

Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Jean Bernon
In reply to this post by Daniel Caillibaud-5
Pas sûr de bien comprendre ce que tu veux faire. Mais si tu veux lancer deux applications au démarrage ou même deux scripts tu peux les configurer dans ~/.config/autostart/.

----- Mail original -----

> De: "Daniel Caillibaud" <[hidden email]>
> À: [hidden email]
> Envoyé: Mercredi 16 Mai 2018 09:38:00
> Objet: chaîner des applications au démarrage

> 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 /
> monTrucPerso 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
> commandes)

> --
> Daniel

> Mieux vaux fermer sa gueule et passer pour un con
> que de l'ouvrir et ne laisser aucun doute à ce sujet.
> Coluche

Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Daniel Caillibaud-5
In reply to this post by Étienne Mollier
Le 17/05/18 à 20:58, Étienne Mollier <[hidden email]> 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.

> 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, la 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=false
Hidden=false
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

Reply | Threaded
Open this post in threaded view
|

Re: chaîner des applications au démarrage

Étienne Mollier
Bonsoir,

On 05/18/2018 06:56 PM, Daniel Caillibaud wrote:
> Le 17/05/18 à 20:58, Étienne Mollier <[hidden email]> 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 <[hidden email]>