[Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Mise à jour / Création /debug de paquetages
Répondre
Avatar de l’utilisateur
mimile
Maître du Kyudo
Messages : 1507
Inscription : lun. 14 nov. 2011, 10:21
Localisation : Seraing (Belgique)

[Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par mimile »

Bonjour,

J'ai écrit un petit script bash avec un raccourci bi-directionnel sur mon bureau qui démarre ou arrête Lampp, nécessaire à l'affichage de la page Web (php) que je me construis depuis plusieurs années.

Quand je dis bi-directionnel, je veux dire qu'un premier clic lance Lampp (apache, mysql et proFtpd) et un deuxième clic l'arrête :

Le texte :
#!/bin/bash

ps aux | cut -c 66-150 > ps.txt

if grep "lampp" ps.txt

then

sudo /opt/lampp/lampp stop | yad --geometry=270x75+50+620 title="Arrêt de Lampp" --progress --text="arrêt des programmes" --pulsate --auto-close
yad --geometry=270x75+50+620 --info --title="Arrêt de Lampp" --text="Apache stopped \nMySql stopped \nPHP stopped"

else

sudo /opt/lampp/lampp start | yad --geometry=270x75+50+620 title="Démarrage de Lampp" --progress --text="lancement des programmes" --pulsate --auto-close
yad --geometry=270x75+50+620 --info --title="Démarrage de Lampp" --text="Apache started \nMySql started \nPHP started"

fi
Ce qui donne à l'écran :

1er clic :

Image

2ème clic :

Image

J'ai dû me résoudre à ce stratagème car auparavant, lampp démarrait spontanément sans intervention de ma part mais depuis hier, quand je cliquais sur l'onglet d'affichage de ma page placé dans ma barre personnelle, une petite fenêtre s'affichait me demandant ce qu'il convenait de faire : enregistrer et ouvrir avec. Inutile de dire que cela ne résolvait pas mon problème.

J'ai examiné la liste des applications au démarrage, mais il n'est pas possible d'y intégrer Lampp.

J'ai vainement cherché sur le net comment faire en sort que Lampp démarre au boot, les seuls sujets que j'ai trouvés étant anciens, avant l'introduction de systemd.

Comment faire en sorte que lampp démarre spontanément ?

J'ai visionné le contenu de /etc/xdg/autostart/cinnamon mais je ne vois pas ce qu'il y a lieu de faire à ce niveau.

Merci d'avance.
Dernière modification par mimile le dim. 19 nov. 2017, 11:48, modifié 1 fois.
La TV ? J'adore la TV. Je peux rester des heures devant la TV ... et même, parfois, il m'arrive de l'allumer ...
Image
(Jean-Luc GODARD)
Avatar de l’utilisateur
papajoke
Elfe
Messages : 779
Inscription : sam. 30 août 2014, 19:54

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage

Message par papajoke »

bonjour,
il y a un service systemd de fournit avec le paquet
https://aur.archlinux.org/cgit/aur.git/ ... ce?h=xampp
Dernière modification par papajoke le lun. 20 nov. 2017, 19:34, modifié 2 fois.
Arch stable - Kde 5 / zsh - btrfs/mbr - Intel Core i3 - 6Go RAM - GeForce 405 video-nouveau
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage

Message par sukolyn »

salut,

il faudrait expliquer ce que tu entends par "démarrage" : démarrage de la machine, ou démarrage de l'interface graphique ?

si c'est démarrage de la machine, alors, effectivement, systemd va le faire.
si c'est au démarrage du gestionnaire de fenêtre (lequel ? gnome, kde, i3wm...), et que ça ne fonctionne plus, c'est qu'il y a probablement eu une mise à jour; il doit alors y avoir, sur le site du Window Manager, une explication de ce qu'il faut faire pour préserver le comportement précédent...

en attendant je te propose une petite amélioration de ton script (ça ne changera pas le comportement nouveau de ton WM) :

Code : Tout sélectionner

#!/bin/bash

toggle()
{
    test "$1" = "stop" && { state="stopped"; expl="Arrêt";} || { state="started"; expl="Démarrage";}
    sudo /opt/lampp/lampp "$1" \
        | yad --geometry=270x75+50+620 title="$expl de Lampp" --progress --text="$expl des programmes" --pulsate --auto-close
    # pour bien faire, il faudrait tester que chaque programme est effectivement démarré/arrêté.
    yad --geometry=270x75+50+620 --info --title="$expl de Lampp" --text="Apache $state \nMySql $state \nPHP $state"
}

pgrep "lampp" && toggle stop || toggle start
Avatar de l’utilisateur
mimile
Maître du Kyudo
Messages : 1507
Inscription : lun. 14 nov. 2011, 10:21
Localisation : Seraing (Belgique)

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage

Message par mimile »

Bonjour,

Merci pour vos réponses mais j'ai trouvé la solution.

J'ai créé dans ~/.config/autostart un fichier lampp.desktop contenant ce texte :
[Desktop Entry]
Type=Application
Exec=sudo /opt/lampp/lampp start
X-GNOME-Autostart-enabled=true
NoDisplay=false
Hidden=false
Name[fr_BE]=lampp
Comment[fr_BE]=lancement de lampp
X-GNOME-Autostart-Delay=0
Résultat : au démarrage d'Arch, lampp est activé sans intervention de ma part et, pour gouverne, lampp apparait maintenant dans la liste des "applications au démarrage du menu "préférences" de cinnamon.

Sujet résolu donc.

Amicalement
La TV ? J'adore la TV. Je peux rester des heures devant la TV ... et même, parfois, il m'arrive de l'allumer ...
Image
(Jean-Luc GODARD)
sukolyn
archer
Messages : 116
Inscription : mar. 11 juil. 2017, 09:56

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par sukolyn »

ok, donc je vais faire mon relou en insistant : il n'est pas question ici du démarrage de ArchLinux, mais du démarrage du gestionnaire de fenêtre.

mais pourquoi démarrer lampp aussi tard, et non via systemd ?
Avatar de l’utilisateur
mimile
Maître du Kyudo
Messages : 1507
Inscription : lun. 14 nov. 2011, 10:21
Localisation : Seraing (Belgique)

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par mimile »

Quelle importance, une ou deux secondes ?

Même pas le temps de m'en rendre compte, vu que firefox met plus de temps que ça à s'afficher.

Cette solution m'empêche :

1) de devoir m'en préoccuper
2) de débarrasser mon bureau d'un lanceur devenu inutile ...

Dès lors, pourquoi chercher une autre solution au risque de mettre une fois de plus le souk dans ma arch.

La première solution qui m'avait été donnée par (je me suis engagé à ne plus le nommer - parole de scout) m'a mis dans un pétrin infernal.

Alors, maintenant, basta : ça tourne comme je le voulais et pourquoi devrais-je encore faire des tentatives aléatoires ?

Donc, je le redis : sujet définitivement résolu.

Mais je te remercie quand même pour ta volonté à me venir en aide.

Amicalement

Mimile
La TV ? J'adore la TV. Je peux rester des heures devant la TV ... et même, parfois, il m'arrive de l'allumer ...
Image
(Jean-Luc GODARD)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par benjarobin »

Mouais, je dirais plus que tes solutions étranges ont plus de chance de "casser" ton Arch Linux. A vouloir à chaque fois bricoler ta propre solution n'est pas une bonne idée, réinventer la roue n'est jamais une bonne idée...
Déjà, utiliser Lamp, je ne vois vraiment pas l’intérêt. Pourquoi ne pas utiliser le service de mysqld, du serveur Web avec php ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
mimile
Maître du Kyudo
Messages : 1507
Inscription : lun. 14 nov. 2011, 10:21
Localisation : Seraing (Belgique)

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par mimile »

Je ne vois pas ce qu'il y a d'étrange dans le fait d'ajouter un *.desktop dans ~/.config/autostart.

Il s'y trouve en compagnie des autres *.desktop qui sont lancés au démarrage de ma session.

En ce qui concerne Lampp, je l'ai découvert lorsque j'ai commencé à vouloir écrire ma propre page Web.

Etant totalement ignare, j'ai arpenté le net et découvert "Le site du zéro" qui contenait à l'époque un Wiki fort bien fait et qui, précisément, préconisait d'installer Lampp avant d'aborder le vif du sujet (création d'une page Web).

C'était il y a quelques années (je crois qu'à l'époque j'étais sous Mandriva 2000 free) et depuis lors, sur toutes les distributions que j'ai utilisées, j'ai installé Lampp pour pouvoir tester ma page au fur-et-à-mesure de son évolution.

La version de Lampp qui tourne actuellement est la version Lampp pour Linux 64 bits.

Cela dit, je dois avouer que je ne sais pas comment utiliser le service de mysqld, du serveur Web avec php (pour rependre ta phrase).

Pourrais-tu m'en dire un peu plus sur la manière de procéder ?

Merci d'avance.
La TV ? J'adore la TV. Je peux rester des heures devant la TV ... et même, parfois, il m'arrive de l'allumer ...
Image
(Jean-Luc GODARD)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par benjarobin »

Utiliser un desktop dans ~/.config/autostart est une bonne pratique.
C'est juste que l'on peut avoir un service systemd qui se lance au démarrage du PC. Je n'ai jamais compris l'intérêt de lamp, autant wamp oui...
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
mimile
Maître du Kyudo
Messages : 1507
Inscription : lun. 14 nov. 2011, 10:21
Localisation : Seraing (Belgique)

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par mimile »

Salut Benjarobin,

J'avoue que je ne sais pas trop comment faire pour créer un service systemd qui lancerait lampp au démarrage du PC.

Une petite explication me donnerait la piste.

Merci d'avance.
La TV ? J'adore la TV. Je peux rester des heures devant la TV ... et même, parfois, il m'arrive de l'allumer ...
Image
(Jean-Luc GODARD)
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17222
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Script bash] comment faire pour qu'il s'exécute au démarrage (résolu)

Message par benjarobin »

Il y a déjà des services pour lancer un serveur Web, lancer php et lancer une base de donnée mysql. Lamp ne sert juste à rien !
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Répondre