Skriva en ny tjänst för linux (opensuse) (4 / 5 steg)
Steg 4: Skriva tjänst-skriptet
I vissa distributioner finns det skelett som du kan använda för detta ändamål. Bara ta dem och fyll i de saker du behöver.
Med opensuse kommer det inget sånt, så vi måste använda en befintlig och ändra den.
Eftersom vi arbetar i /etc/init.d/ måste du vara root för att redigera och spara filer här.
typ: "su- och rotlösenordet att bli root.
Bara göra ett nytt skript som heter networklog och fyll den med detta innehåll:
#! / bin/sh LOGFILE = / hem/ak/networklogfile fallet "$1" i
# Copyright (c) 2014 andyk75
#
# Författare: andyk75 (instructables)
#
# /etc/init.d/networklog
#
# och symbolisk länk
#
### BÖRJA INIT INFORMATION
# Ger: networklog
# Krävs-Start:
# Krävs-Stop:
# Standard-Start: 3 5
# Standard-Stop: 0 1 2 6
# Beskrivning: Starta networklogging
# Kort beskrivning: gör Networklog
### AVSLUTA INIT INFO
eko - n "Starta Networklogging"
## Starta daemon med startproc(8). Om detta misslyckas
## echo returnera värdet lämpliga.
;;
ECHO 'ifconfig' >> $LOGFILE
eko - n "Stänga ner Networklogging"
## Stoppa daemon med killproc(8) och om detta misslyckas
## set echo echo returvärdet.
;; starta om) ## Stoppa tjänsten och oavsett om det var
## körs eller inte, starta den igen.
# Minns status och vara tyst
;; status) eko - n "Kontrollera för Networkloggingservice"
## Kontrollera status med checkproc(8), om processen körs
## checkproc kommer tillbaka med felstatus 0.
;; *) echo "användning: 0 $ {start|stop|status|restart|}"
utgång 1
;;
ESAC
Och glöm inte att göra den körbar med "chmod + x networklog"
Förklaring:
- I huvud-delen med "### BEGIN INIT information" tills "### avsluta INIT INFO" vi ange som runlevels denna tjänst bör vara igång (3 + 5) och där bör man slutat (0, 1, 2, 6). Och vi har en kort beskrivning av tjänsten. Krävs-Start och stop fälten är tomma, eftersom vi inte lita på någon annan tjänst som ska startas.
- Nu har vi återigen en variabel kallas LOGFILE, som i testscript innan.
- Men fallet-anvisningen är nytt. När skriptet anropas med en parameter, denna parameter kan nås inom skriptet med $1 och detta är vad som händer här: enligt momsgrupparametern fall-programsatsen körs endast raderna efter parametern. Vi har "start", "stop", "starta om", "status" och jokertecknet "*" som gäller om parametern är något annat. Du kan se på det jokertecknets echo, du får namnet på skriptet (0$) sig med en liten instruktion på hur man använder den.
- Omstart egentligen göra inte någonting.
- När init-processen kallar "networklog start": det aktuella datumet med en Start-etikett skrivs till loggfilen.
- När init-processen kallar "networklog stop": tillverkas av ifconfig och det aktuella datumet med en stop-etikett skrivs till loggfilen.
Och det är det.