[resolu] Création service

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

[resolu] Création service

Messagepar androme » 28 Mars 2006 11:01

Bonjour, je suis à la recherche de documentation concernant la création de service sous sme 7.0, un peu comme sleepymaster a fait avec sa contrib snort (service snortd start).

J'ai fais quelques recherches mais je ne trouve rien (avec la possibilité que j'ai mal cherché :)).
Dernière édition par androme le 28 Mars 2006 18:11, édité 1 fois au total.
IPCOP 1.4.11 + guardian + urlfilter + advproxy | red + orange + green
PIII 550 | 384 Mo | 4,3 Go 2.5"

Serveur Debian Sarge XEN
XP 1800+ | 512Mo | 2*40 Go
2 serveurs virtuels
Avatar de l’utilisateur
androme
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 194
Inscrit le: 27 Fév 2006 18:20
Localisation: Arles city

Messagepar Landry » 28 Mars 2006 11:48

Pour faire vite, et de mémoire:

- il faut ajouter le script de démarrage du service toto dans /etc/rc.d/init.d/toto (prendre exemple sur ceux qui y sont déja)

- il faut faire un lien symbolique dans rc7.d pour que le service soit lancé au démarrage: ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/SXXtoto ou XX est l'ordre a donner au service a lancer (00 pour le lancer parmi les premiers, jusqu'a 99 pour le lancer parmi les derniers)

- il faut l'ajouter a la db des services sme:
db configuration set toto service
db configuration setprop toto status enabled

ca "devrait" suffire.

Tu peux décortiquer les sources d'un rpm pour voir comment ca marche (regarde le .spec de sme7admin et le fichier create-smedb.sh ici http://sme.firewall-services.com/srcs/sme7admin )
http://sme.firewall-services.com <== des contribs pour votre SME (sme7admin, sme6admin, ulogd, OpenVPN, Asterisk..)
Avatar de l’utilisateur
Landry
Enseigne de vaisseau
Enseigne de vaisseau
 
Messages: 149
Inscrit le: 16 Juin 2004 16:42
Localisation: Rennes

Messagepar MasterSleepy » 28 Mars 2006 14:16

Salut,

Pour snort qui est pour sme 7.0, j'ai utilisé supervise pour le service.
Cela a l'avantage de se relancer tout seul.
Ce qu'a dit landry est correct sauf qu'il ne faut pas de script /etc/rc.d/init.d/nom_proc
il faut en plus créer un répertoire /var/services/nom_proc
un lien de /services vers le rep du haut.

Se répertoire doit contenir un fichier "run"qui est un script shell pour lancer le processus.

En gros c'est plus ou moins cela mais j'oublie peut-être de truc.
Mais comme landry l'a dit, n'hésite pas a voir comment c'est fait dans les autres contribs, style snort ;-) ou dansguardian ...

A+
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar androme » 28 Mars 2006 16:12

Merci à vous pour toutes ces informations
IPCOP 1.4.11 + guardian + urlfilter + advproxy | red + orange + green
PIII 550 | 384 Mo | 4,3 Go 2.5"

Serveur Debian Sarge XEN
XP 1800+ | 512Mo | 2*40 Go
2 serveurs virtuels
Avatar de l’utilisateur
androme
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 194
Inscrit le: 27 Fév 2006 18:20
Localisation: Arles city

Messagepar fraedhrim » 28 Mars 2006 17:04

Pour lancer un programme "à la" service tu peux aussi simplement créer un script du genre suivant dans le dossier "/etc/rc.d/init.d" et utiliser la commande "chkconfig" qui permet de générer les liens dans les bons dossiers "/etc/rcX.d" :

Code: Tout sélectionner
#!/bin/sh
# description: Mon service
# chkconfig: 345 85 15

case "$1" in
'start')
   su -c "ma_commande_pour_demarrer" le_user_sous_lequel_ça_doit_tourner
   touch /var/lock/subsys/mon_service
   ;;
'stop')
   su -c "/ma_commande_pour_stopper" le_user_sous_lequel_ça_doit_tourner
   rm -f /var/lock/subsys/mon_service
   ;;
*)
   echo "Usage: $0 { start | stop }"
   ;;
esac
exit 0


Avec un petit "chkconfig --level 345 mon_service on" et zou !

A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar fraedhrim » 28 Mars 2006 17:30

Bon allez dans un grand élan de bonté :? je te file même une version top :

Code: Tout sélectionner
#!/bin/bash
#
# chkconfig: - 85 15
# description: mon_prog
# processname: mon_prog
# config: /etc/mon_prog.conf

# Source function library.
. /etc/rc.d/init.d/functions

mon_prog=/usr/sbin/mon_prog
prog=mon_prog
RETVAL=0
OPTIONS="-d"

start() {
        echo -n $"Starting $prog: "
        daemon $mon_prog $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch /var/lock/subsys/mon_prog
        return $RETVAL
}
stop() {
        echo -n $"Stopping $prog: "
        killproc $mon_prog
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/mon_prog
}

# See how we were called.
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  status)
        status $mon_prog
        RETVAL=$?
        ;;
  restart)
        stop
        start
        ;;
  *)
        echo $"Usage: $prog {start|stop|restart|status}"
        exit 1
esac

exit $RETVAL


(Attention s'il s'agit de lancer un simple programme du coup ça tourne sous root)

Mais le mieux c'est peut-être d'utiliser "supervise" comme beaucoup d'autres services de la SME comme le disent les gars au-dessus.... Perso je n'ai jamais essayé. :oops:
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar androme » 28 Mars 2006 18:11

Que du bonheur !!! merci encore.
IPCOP 1.4.11 + guardian + urlfilter + advproxy | red + orange + green
PIII 550 | 384 Mo | 4,3 Go 2.5"

Serveur Debian Sarge XEN
XP 1800+ | 512Mo | 2*40 Go
2 serveurs virtuels
Avatar de l’utilisateur
androme
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 194
Inscrit le: 27 Fév 2006 18:20
Localisation: Arles city

Messagepar sibsib » 28 Mars 2006 23:03

Hello,

Attention,

Jusqu'en SME 6, chkconfig ne fonctionnait pas sur SME : SME tourne en run-level 7, ce que chkconfig ne gère pas. Il faut donc linker le script de démarrage 'à la main' dans /etc/rc.d/rc7.d.

Pour les ceusses que l'Anglais ne rebute pas trop, le super developper guide dispo sur contribs.org explique d'une part la supériorité de supervise, et d'autre part comment le mettre en oeuvre.
supervise est droit dans le SME spirit, donc n'hésitez pas :-D

A+,
Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar Grand-Pa » 29 Mars 2006 00:56

En v7.0 la limitation de chkconfig est la même qu'en v6 pour ce qui concerne le runlevel 7.

Et pour le génial devguide, il est disponible en HTML et en PDF. Merci de l'avoir mentionné Pascal. 8)
Et hop, finis les galons !
Avatar de l’utilisateur
Grand-Pa
Vice-Amiral
Vice-Amiral
 
Messages: 728
Inscrit le: 08 Avr 2002 00:00
Localisation: Gap, France

Messagepar fraedhrim » 29 Mars 2006 09:28

(Merdoum où ai-je mis la brassée de fleurs à balancer ?!.... :lol: )

Effectivement j'ai oublié de mentionner le petit détail du level 7... Mea culpa.
Sinon va falloir que je regarde "supervise", il est clair que ça a l'avantage de son nom...
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar androme » 29 Mars 2006 12:36

Bon je reprend :

je fais un dossier "toto" dans /var/service

j'y met mon script "run" tel que celui de fraedhrim.

ensuite :

db configuration set toto service
db configuration setprop toto status enabled

après je crée le lien symbolique :

ln -s /var/service/toto/run /etc/rc.d/init.d/toto


mais quand je tape : service toto start
il me dit :
'toto' is not a valid service name.

je sais, j'ai raté un truc gros comme une maison mais quoi ?
IPCOP 1.4.11 + guardian + urlfilter + advproxy | red + orange + green
PIII 550 | 384 Mo | 4,3 Go 2.5"

Serveur Debian Sarge XEN
XP 1800+ | 512Mo | 2*40 Go
2 serveurs virtuels
Avatar de l’utilisateur
androme
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 194
Inscrit le: 27 Fév 2006 18:20
Localisation: Arles city

Messagepar micjack » 29 Mars 2006 12:56

Un script original doit se trouver dans /etc/rc.d/init.d/toto (enfin, sur la plus part des distrib )
C'est qu'apres qu'il faut faie un lien vers le rcx.d qui va bien. (Bizarerie sur SME le rc7.d )

ln -s /etc/rc.d/init.d/toto /etc/rc.d/rc7.d/S92toto


Attention, le 92 n'est qu'un exemple, il faut que tu choisisse un demarrage qui va bien.
Genre S10network demarrera avant le S92 (A toi de voir)

Ne pas oublier de rendre executable toto "chmod 755 toto"
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar MasterSleepy » 29 Mars 2006 13:27

Salut,

Si tu veux utiliser les services.
Il faut que le liens danbs rc7.d se fasse sur le fichier
/etc/rc.d/init.d/e-smith-service
comme Landry a expliqué.
C'est e-smith-service qui vas aller voir si il faut lancer le service ou non en allant voir les propriétés "status". Cette propriété peut être changé suivant les explications de Landry
db configuration setprop toto status enabled


A+
"Microsoft fera quelque chose qui ne plantera jamais quand ils commenceront à fabriquer des clous "
http://www.vanhees.cc
Avatar de l’utilisateur
MasterSleepy
Amiral
Amiral
 
Messages: 2625
Inscrit le: 24 Juil 2002 00:00
Localisation: Belgique

Messagepar micjack » 29 Mars 2006 13:55

J'avais zapé le post de Landry :?
ln -s /etc/rc.d/init.d/e-smith-service /etc/rc7.d/SXXtoto

Je comprend vaguement, mais le principe reste le même que mon explication, et si je comprend bien ton explication "e-smith-service" est un script qui a une liste des services qui doivent etre lancé et ces derniers ne se trouvent pas dans init.d.. Un espece de fichier batch.

Marant que la SME s'amuse avec une embrication de script. Un genre de xinetd quoi..

Je serait curieux de savoir si la méthode habituele d'une RH fonctionne sur SME (je vais finir vraiment un jour par l'installer une SME pour jouer avec tout cela :D )
micjack
Amiral
Amiral
 
Messages: 3113
Inscrit le: 06 Juin 2003 00:00
Localisation: Varois

Messagepar androme » 29 Mars 2006 14:00

Dites, pour eviter d'avoir le même script disposé à plusieurs endroits est-ce que je peux aussi faire un lien symbolique de /etc/rc7.d/SXXtoto vers /etc/service/toto/run ?

ca me permettrais de n'avoir qu'une seule version du script dans /etc/rc7.d/SXXtoto ?
IPCOP 1.4.11 + guardian + urlfilter + advproxy | red + orange + green
PIII 550 | 384 Mo | 4,3 Go 2.5"

Serveur Debian Sarge XEN
XP 1800+ | 512Mo | 2*40 Go
2 serveurs virtuels
Avatar de l’utilisateur
androme
Lieutenant de vaisseau
Lieutenant de vaisseau
 
Messages: 194
Inscrit le: 27 Fév 2006 18:20
Localisation: Arles city

Suivant

Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron