Stap 4: Het service-script schrijven
In sommige distributies zijn er skeletten die u voor dit doel gebruiken kunt. U gewoon meenemen en vul de spullen die u nodig hebt.
Met opensuse komt er niets dergelijks, dus we hebben een bestaande database gebruiken en wijzigen.
Omdat we in /etc/init.d/ werken moet je wel root te bewerken en opslaan van bestanden hier.
type: "su" en het root-wachtwoord om root te worden.
Net een nieuwe script genaamd networklog maken en vul het met deze inhoud:
#! / bin/sh LOGFILE = / home/ak/networklogfile Case "$1" in
# Copyright (c) 2014 andyk75
#
# Auteur: andyk75 (instructables)
#
# /etc/init.d/networklog
#
# en symbolisch de verbindings-
#
### BEGINNEN INIT INFO
# Biedt: networklog
# Verplicht-Start:
# Vereist-Stop:
# Standaard-Start: 3 5
# Standaard-Stop: 0 1 2 6
# Beschrijving: Start de networklogging
# Korte-beschrijving: Networklog maken
### EINDE INIT INFO
echo - n "Networklogging starten"
## Daemon starten met startproc(8). Als dit niet lukt
## de echo weergegeven waarde passende is ingesteld.
;;
echo 'ifconfig' >> $LOGFILE
echo - n "Shutting down Networklogging"
## Stop daemon met killproc(8) en als dit niet lukt
## set echo de retourwaarde van echo.
;; herstarten) ## Stop de service en ongeacht of het was
## draait of niet, start het opnieuw.
# Herinner me status en stil
;; status) echo - n "Pointering voor Networkloggingservice"
## Status met checkproc(8), als het proces wordt uitgevoerd controleren
## checkproc zal terugkeren met exit status 0.
;; *) echo "gebruik: $0 {start|stop|status|restart|}"
afrit 1
;;
ESAC
En vergeet niet om Maak het uitvoerbaar met 'chmod + x networklog'
Uitleg:
- In de kop-met "### BEGIN INIT INFO" tot "### END INIT INFO" we opgeven waarin runlevels deze service moet worden gestart (3 + 5) en in die moet worden gestopt (0, 1, 2, 6). En we hebben een korte beschrijving van de service. De vereiste-Start en stop velden zijn leeg, omdat we niet vertrouwen op elke andere service wordt gestart.
- Nu hebben we weer een variabele met de naam LOGFILE, zoals in het testscript vóór.
- Maar de case-instructie is nieuw. Wanneer het script wordt aangeroepen met een parameter, deze parameter kan worden geopend in het script met $1 en dit is wat er gebeurt hier: volgens de parameter voert het case-statement alleen de lijnen achter de parameter. We hebben "start", "stop", "herstarten", "status" en de wildcard "*" die is van toepassing als de parameter iets anders is. U kunt zien op de wildcard van de echo, je de naam van het script ($0) zelf met een kleine instructie van hoe het te gebruiken.
- Opnieuw opstarten doet echt niets.
- Wanneer het init-proces vraagt 'start networklog': de huidige datum met een Start-label wordt weggeschreven naar het logbestand.
- Wanneer het init-proces vraagt 'networklog stop': de uitvoer van ifconfig en de huidige datum met een stop-label wordt weggeschreven naar het logbestand.
En thats it.