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!!
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!!
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]
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![]()
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!
Pourquoi ne pas plutôt désactiver le démarrage de "myservice", ça parait plus simple non ?
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]
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
Partager