IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script shell au boot


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 119
    Par défaut Script shell au boot
    Bonsoir,

    J'aimerai mettre en place un script qui arrête un service et ses processus fils au démarrage du système via le PID et les redémarre après.

    Pour info: j'ai un service myservice avec deux process thread1 et thread2

    Merci pour votre aide!!

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par constant_op Voir le message
    J'aimerai mettre en place un script qui arrête un service et ses processus fils au démarrage du système via le PID et les redémarre après.
    Bonsoir
    après quoi ? Déjà lorsque l'ordi démarre il n'y a rien donc arrêter un process qui n'existe pas encore c'est glauque... mais en plus "arrêter un process" lorsque l'ordi démarre et le "redémarrer après" c'est franchement incompréhensible...

    Sinon pour exécuter un script au boot de l'ordi il faut aller taper dans les dossiers /etc/init.d et /etc/rcX.d (X pouvant aller de 0 à 6) mais c'est une question d'admin système et non de script shell donc t'es pas dans la bonne rubrique...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour,

    Oui, et puis, "au boot", c'est vite dit. Si ça se trouve, il ne s'agit que de l'ouverture de session par un utilisateur.

    Attendons la suite

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2011
    Messages : 119
    Par défaut
    Bonjour,

    Peut-être que je me suis pas fait comprendre mais ça ne doit pas aussi être une occasion pour être déviant.

    Quand je dis "au boot", c'est après que le système ait été lancé puisqu'il s'agit en réalité de recupérer le PID du process et le killer.

    L'idée est qu'une fois le système a été lancé, on recupère le pid du process et on tue le process avec ses processus fils (2). Une fois c'est fait, on démarre process1 puis process2. Et ceci à chaque boot (ou reboot) du système.

    Merci pour votre retour!

  5. #5
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Par défaut
    Pourquoi ne pas plutôt désactiver le démarrage de "myservice", ça parait plus simple non ?

  6. #6
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 256
    Par défaut
    constant_op, attention aux termes utilisés pouvant porter à confusion ( ça à l'air d'avoir été le cas là ).

    Quand on dit au boot, cela sous-entend ( du moins pour moi mais je ne pense pas être le seul ) que le système est en train de démarrer, à ce stade pas de process, le noyau n'nétant pas encore chargé ( d'ou la confusion ).

    Au cas ou te ne maitrise pas le processus du boot :

    http://www.mageialinux-online.org/wi...-systeme-linux

    Un démon correctement fait répond aux commandes start, stop, restart, status.

    Je t'invites à regarder un des fichiers présents commençant par S dans /etc/rcX.d ( X pour le runlevel ) et tu verra le principe.

    Sans bien maitriser le shell, ce que je ne comprend pas, je le devine. Grosso modo tu vois qu'il y a la création d'un fichier /var/run/demon.pid stockant le pid du process. En gros le script teste la présence de l’exécutable, l'appel avec le bon paramètre après affichage message.
    Si tu en regardes plusieurs, ils sont quasi-identiques ça sent l'automatisme, après recherche tu trouves le lien 2 ou tu as justement comment créer cet automatisme. Rien ne t’empêche de faire ton propre script "batard".

    Pour ton besoin, tu dois être en mesure de stopper ton processus ( après avoir son pid ) exemple d'arrêt par ordre de propreté du mieux au moins bien
    - arrêt via l’exécutable avec paramètre stop
    - envoi SIGTERM
    - envoi SIGKILL
    Si ton processus a des enfants, A la mort de papa, les enfants mourront ( soyons poétique : de chagrin ) ou seront adoptés par init ( mais dans ce cas, c'est que le soft est pas propre ). Un thread, ça se traduit par processus léger, il appartient à un processus. La fin du processus signifie la fin de ses threads

    Une fois que tu sais "trouver" ton processus ( son pid ), il te faut le stopper, et dernière étape : choisir le moment de ceci.
    Dans rcX.d, les numéros Sx donnent l'ordre de démarrage des scripts, tu peux donc choisir l'ordre de démarrage avec le nom du script. Si pas d'importance mets le numéro le plus grand+1 ou mieux laisses le système faire ( cf lien 2 )

    exemple pour le processus standard

    Pour démarrer le démon exim4 ( serveur mail )
    /etc/init.d/start

    http://www.developpez.net/forums/d10...on-sous-linux/
    http://doc.ubuntu-fr.org/tutoriel/co...mme_en_service
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 833
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 833
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par constant_op Voir le message
    Peut-être que je me suis pas fait comprendre mais ça ne doit pas aussi être une occasion pour être déviant.
    C'est vrai. Mais c'est aussi une façon de faire comprendre à l'auteur que peut-être il analyse mal son problème puisqu'il n'arrive pas à l'exprimer correctement. Et donc peut-être que la solution est plus simple que celle qu'il a envisagé (cf réponse de jilliagre)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Script shell
    Par anzar dans le forum Linux
    Réponses: 4
    Dernier message: 03/12/2004, 14h41
  2. [JSP] script shell
    Par goolix dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2004, 09h08
  3. Exécution d'un script shell
    Par Manu0086 dans le forum Linux
    Réponses: 8
    Dernier message: 15/06/2004, 16h31
  4. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 13h54
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo