Étape 4: Écrire le script de service
Il y a dans certaines distributions squelettes que vous pouvez utiliser à cet effet. Vous venez d’emportez-les et renseignez les choses dont vous avez besoin.
Avec opensuse vient rien comme ça, alors il faut utiliser un existant et de le modifier.
Parce que nous travaillons dans /etc/init.d/ il faut être root pour éditer et enregistrer des fichiers ici.
type: « su » et le mot de passe root pour devenir root.
Il suffit de faire un nouveau script appelé networklog et remplissez-le avec ce contenu :
#! / bin/sh LOGFILE = / home/ak/networklogfile case « $1 » dans
# Copyright (c) 2014 andyk75
#
# Auteur : andyk75 (instructables)
#
# /etc/init.d/networklog
#
# et symbolique son lien
#
### BEGIN INIT INFO
# Fournit : networklog
# Démarrage requis :
# Escale requise :
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description : Commencer le networklogging
# Description succincte : faire Networklog
### FIN INIT INFO
echo - n « À partir de Networklogging »
## Démarrez le démon avec startproc(8). Si cela ne fonctionne pas
## l’écho de retour a la valeur appropriée.
;;
echo « ifconfig » >> $LOGFILE
echo - n « Shutting down Networklogging »
## Arrêter le démon avec killproc(8) et si cela ne fonctionne pas
## ensemble font écho à la valeur de retour d’echo.
;; redémarrer) ## Arrêter le service et sans se soucier de savoir s’il était
## en cours d’exécution ou non, redémarrez-la.
# Souvenez-vous statut et tais-toi
;; statut) echo - n « Vérification de Networkloggingservice »
## Vérifier état avec checkproc(8), si le processus est en cours d’exécution
## checkproc sera de retour à l’état de sortie 0.
;; *) echo "Usage: $0 {start|stop|status|restart|}"
sortie 1
;;
ESAC
Et n’oubliez pas de rendre exécutable avec 'chmod + x networklog'
Explication :
- Dans la partie en-tête avec "### BEGIN INIT INFO" jusqu'à ce que "### fin INIT INFO » nous spécifions dans lequel runlevels ce service doit être démarré (3 + 5) et dans lequel il devrait être arrêté (0, 1, 2, 6). Et nous avons une brève description du service. Le nécessaire-Start et stop champs sont vides, parce que nous ne comptez pas sur n’importe quel autre service doit être démarré.
- Aujourd'hui encore, nous avons une variable appelée LOGFILE, comme dans le testscript avant.
- Mais l’affaire-instruction est nouveau. Lorsque le script est appelé avec un paramètre, ce paramètre est accessible dans le script avec $1 et c’est ce qui se passe ici : selon le paramètre de l’instruction case exécute uniquement les lignes après le paramètre. Nous avons « démarrer », « stop », « redémarrer », « statut » et le caractère générique « * » qui s’applique si le paramètre est quelque chose d’autre. Vous pouvez voir à l’écho du caractère générique, vous obtenez le nom du script ($0) lui-même avec une petite instruction sur la façon de l’utiliser.
- Redémarrage ne fait vraiment rien.
- Lorsque le processus init appelle « start networklog »: la date du jour avec une étiquette de début est écrit dans le fichier journal.
- Lorsque le processus init appelle « stop networklog »: la sortie d’ifconfig et la date actuelle avec une stop-étiquette est écrite dans le fichier journal.
Et c’est tout.