Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/05/2023, à 17:51

herveD

Comment fermer le terminal après lancement d'un programme (résolu)

Bonjour
J'ai fait un script pour lancer une application dans un mode particulier.
L'appli s'ouvre bien mais le terminal reste ouvert.

#!/bin/bash
tagspaces -P 

Comment le fermer après le lancement. Il me semble un jour avoir cvu que cela était possible

Dernière modification par herveD (Le 23/05/2023, à 09:05)


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#2 Le 21/05/2023, à 17:57

jplemoine

Re : Comment fermer le terminal après lancement d'un programme (résolu)

De mémoire, il faut faire suivre la commande par & et/ou faire précéder par nohup.
Donc, un truc du genre :

#!/bin/bash
nohup tagspaces -P &
exit (si nécessaire ?)

Sinon, la fermeture du processus père (le terminal) va arrêter le processus fils (tagspaces)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Déconnecté jusqu’à nouvel ordre

Hors ligne

#3 Le 21/05/2023, à 18:03

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

merci d'avoir essayé :-) mais le lancement ne se fait plus (avec ou sans exit no nohup)
J'oubliai de dire que tagspace est une appimage, je ne sais pas si cela change quelque chose ?


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#4 Le 21/05/2023, à 18:09

Compte supprimé

Re : Comment fermer le terminal après lancement d'un programme (résolu)

Avec byobu, on peut lancer une commande qui se poursuivra après la fermeture du terminal.

#5 Le 21/05/2023, à 18:20

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

#!/bin/bash

tagspaces -P & disown
kill -9 $PPID

100% pur bash. smile

Dernière modification par Watael (Le 21/05/2023, à 18:25)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#6 Le 21/05/2023, à 18:25

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

Je préfère bien sûr la simplicité pur bash mais cela ne fonctionne pas.
Je vois le terminal s'entrouvrir puis se refermer et du coup tagspace ne s'exécute pas !
J'ai trouvé https://doc.ubuntu-fr.org/byobu mais pas sûr que cela me correspond.
Je me demande si c'est possible avec une appmage ?


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#7 Le 21/05/2023, à 18:26

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

j'ai édité pour ajouter un kill
testé avec firefox, ça semble bien tuer le processus parent (soit le terminal)...

Dernière modification par Watael (Le 21/05/2023, à 18:27)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#8 Le 21/05/2023, à 18:28

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

mais si ton but est de faire un raccourci sur le bureau, il y a d'autres moyens, que je ne connais pas puisque je n'ai pas de bureau.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 21/05/2023, à 18:34

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

Je me suis trompé, ce n'est pas une appimage (en fait c'est un 2ème cas que j'aimerais réaliser pour ne pas avoir plusieurs fenêtres de cmd).
Là il s'agit d'un .deb installé :

dpkg -i tagspaces-pro-linux-amd64.deb

Après normalement il suffit d'ajoutter -P


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#10 Le 21/05/2023, à 21:39

jplemoine

Re : Comment fermer le terminal après lancement d'un programme (résolu)

Tu as bien mis le & à la fin ?
Si oui, mets

read a

Ca peut permettra de voir le retour du lancement. Un appui sur la touche <entrée> devrait fermer le terminal.
Si ça c'est bon, met un

sleep N

Et tu testes différentes valeurs de N : pour faire simple, c'est un nombre de secondes
Il faut peut être un temps pour que l'appli se lance avant de fermer le terminal.


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Déconnecté jusqu’à nouvel ordre

Hors ligne

#11 Le 21/05/2023, à 21:44

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

herveD a écrit :

Je me suis trompé, ce n'est pas une appimage (en fait c'est un 2ème cas que j'aimerais réaliser pour ne pas avoir plusieurs fenêtres de cmd).
Là il s'agit d'un .deb installé :

dpkg -i tagspaces-pro-linux-amd64.deb

Après normalement il suffit d'ajoutter -P

Bonjour , la commande que tu donnes sert a installé un logiciel , pas a le lancer ... forcément si il est deja installé , ca ne va rien faire de spécial .
dpkg option -i , veut dire installer =>

man dpkg
ACTIONS
       -i, --install package-file...
           Install the package. If --recursive or -R option is specified, package-file must refer to a directory
           instead.

Dernière modification par iznobe (Le 21/05/2023, à 21:55)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#12 Le 21/05/2023, à 21:48

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

@jplemoine
Je pars de ta suggestion:

#!/bin/bash
nohup tagspaces -P &
read a
sleep 1

Au lancement la fenêtre de l'appli et du terminal s'ouvre, mais ne se ferme pas
Si je tape sleep1 dans le terminal cela ferme tout

@iznobe
Ca je le savais, je ne sais pas pourquoi jai fais ce copier/coller mais c'était juste que j'avai revu que ce n'est pas une appimage (même si cela m'intéresse après pour une autre appli de ce type)


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#13 Le 21/05/2023, à 21:52

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

tu ne m'as pas répondu à la question que je n'ai pas posée explicitement : pourquoi faire un script ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#14 Le 21/05/2023, à 22:00

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

si la commande qui permet de lancer ce logiciel est bien :
tagspaces , alors la commande suivante devrait faire l' affaire ( voire sans l ' option -P ):

tagspaces -P & exit

retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#15 Le 21/05/2023, à 22:05

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

@iznobe
La doc de tagspaces me demande d'utiliser -P pour lancer la version portable (sans être une appimage)

@Watael
Pour lancer en 1 clic la commande portable

Et pour l'appimage qu'est qui devrait fonctionner car cal fait pas mal de variantes


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#16 Le 21/05/2023, à 22:08

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

La doc de tagspaces me demande d'utiliser -P pour lancer la version portable (sans être une appimage)

dejà repondu dans mon message precedent .

pour un fichier appimage , la meme commande que ci-dessus , mais en remplacant par le chemin complet , par exemple :

/home/$USER/AppImages/mon_app_image & exit

Dernière modification par iznobe (Le 21/05/2023, à 22:09)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#17 Le 21/05/2023, à 22:08

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

exit va fermer le script, pas le terminal.
pour fermer le terminal, c'est le parent du script qu'il faut tuer, puisque le parent du script c'est le terminal.
ou alors, il faudrait taper :

$ nomDuScript & disown; exit

(ou en plus POSIX: nohup nomDuScript & exit)


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#18 Le 21/05/2023, à 22:10

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

je viens de tester avec gnome calculator , aucun probleme , la calculatrice reste ouverte et le terminal se ferme bien . pas eu besoin d' ajouter nohup ou autre chose . sinon je ne l' aurais pas indiqué .

Dernière modification par iznobe (Le 21/05/2023, à 22:12)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#19 Le 21/05/2023, à 22:10

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

herveD a écrit :

@Watael
Pour lancer en 1 clic la commande portable

donc, tu veux créer un lanceur, pas un script ! smile
=> https://doc.ubuntu-fr.org/raccourci-lanceur


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#20 Le 21/05/2023, à 22:13

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

@Watael , si j ' ai bien compris non , c  ' est en fait au sujet de l' option -P ( qui signifie version portable ) .

mais je pense qu ' a ce niveau là , Watael a raison , si tu veux cliquer , c ' est mieux de faire un lanceur .
plutôt qu ' un script avec la commande , qui fonctionne tongue , que je t ' ai indiquée .

Dernière modification par iznobe (Le 21/05/2023, à 22:17)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#21 Le 21/05/2023, à 22:19

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

Wahoo je n'arrive plus à suivre
Effectivement rien ne fonctionne pour moi avec exit. Cela ferme tout de suite. Peut-être cela vient de mon chemin du disque externe si cela fonctionne chez vous ?

/media/rv/donnees/monApp.AppImage -P & exit

J'aurai aimé une commande car sinon avec le lanceur cela  rend dépendant de mon ordi actuel , ce n'est plus portable . non?
Bon sinon j'explore la piste du lanceur au moins pour cet ordi demain car je ne pensais pas autant galéré


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#22 Le 21/05/2023, à 22:22

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

et celle ci ne lance pas ton logiciel tagspaces , puis ferme le terminal ?

tagspaces -P & exit

je viens d' essayer avec handbrake , avec avidemux , avec transmission aucun soucis en tapant la commande directement dans le terminal . je vois donc pas trop ce qui empêcherait de mettre ca dans un script .

c ' est une application graphique " tagspaces " ?

Dernière modification par iznobe (Le 21/05/2023, à 22:27)


retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#23 Le 21/05/2023, à 22:25

herveD

Re : Comment fermer le terminal après lancement d'un programme (résolu)

@iznobe
Non idem,
Bon je décroche
Merci pour le temps passé


Ma config actuelle : Ubuntu 24.04 - 64b - INTEL NUC 11 PRO - https://clibre.eu/

Hors ligne

#24 Le 21/05/2023, à 22:38

iznobe

Re : Comment fermer le terminal après lancement d'un programme (résolu)

essaie ca alors :

shopt -s globstar && tagspaces -P & sleep 2; exit

retour COMPLET et utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#25 Le 21/05/2023, à 22:41

Watael

Re : Comment fermer le terminal après lancement d'un programme (résolu)

help exit a écrit :

exit termine le shell.

le shell d'un script, c'est le script, pas le terminal.

j'ouvre un terminal (xterm) - le shell, c'est le terminal - exit dans le terminal termine le terminal.
j'exécute un script dans le terminal ouvert ($ monScript) - le shell, c'est le script - exit dans le script termine le script. une fois le script terminé, le terminal reste ouvert.

dans un script

commande & exit

la commande est passée en arrière plan, et on atteint le exit, qui termine le script, sans attendre la fin de commande.
le terminal ne reçoit pas le exit, il reste donc ouvert.

pour terminer le terminal depuis le script qui y est exécuté, il faut tuer le parent du script, et le parent d'un script exécuté dans un terminal, c'est le terminal.  smile


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne