9.6. System V Oppstartskript Bruk og Konfigurasjon

9.6.1. Hvordan fungerer System V Oppstartskriptet?

Denne versjonen av LFS bruker en spesiell oppstartsfunksjon kalt SysVinit, basert på en serie av kjørenivåer. Det kan være ganske forskjellig fra et system til et annet, så det kan ikke antas at fordi ting fungerte i en spesiell Linux distribusjon, bør de fungere på samme måte i LFS også. LFS har sin egen måte å gjøre ting på, men den respekterer allment aksepterte standarder.

Det er en alternativ oppstartsprosedyre kalt systemd. Vi vil ikke diskuter den oppstartsprosessen mer her. For en detaljert beskrivelse besøk https://www.linux.com/training-tutorials/understanding-and-using-systemd/.

SysVinit (som vil bli referert til som init fra nå av) fungerer ved å bruke en kjørenivåordning. Det er syv (nummerert 0 til 6) kjørenivåer (faktisk er det flere kjørenivåer, men de er for spesielle tilfeller og er vanligvis ikke brukt. Se init(8) for flere detaljer), og hver av disse tilsvarer handlingene datamaskinen skal utføre når den starter opp. Standard kjørenivå er 3. Her er beskrivelser av de ulike kjørenivåene etter hvert som de implementeres i LFS:

0: stopper datamaskinen
1: enkeltbrukermodus
2: reservert for tilpasning, ellers gjøres det det samme som 3
3: flerbrukermodus med nettverk
4: reservert for tilpasning, ellers gjør den det samme som 3
5: samme som 4, den brukes vanligvis for GUI pålogging (som GNOME sin gdm eller LXDE sin lxdm)
6: starter datamaskinen på nytt

[Note]

Note

Klassisk ble kjørenivå 2 ovenfor definert som "flerbrukermodus uten nettverk", men dette var bare tilfelle for mange år siden da flere brukere kunne logge på et system koblet via serielle porter. I dagens miljø gir det ingen mening og vi betegner det nå som "reservert".

9.6.2. Konfigurere Sysvinit

Under kjerneinitialiseringen, det første programmet som kjøres (hvis ikke overstyrt på kommandolinjen) er init. Dette programmet leser initialiseringsfilen /etc/inittab. Opprette denne filen med:

cat > /etc/inittab << "EOF"
# Begin /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc S

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

su:S06:once:/sbin/sulogin
s1:1:respawn:/sbin/sulogin

1:2345:respawn:/sbin/agetty --noclear tty1 9600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
EOF

En forklaring av denne initialiseringsfilen er på mansiden for inittab. I LFS, nøkkelkommandoen er rc. Initialiseringsfilen ovenfor instruerer rc å kjøre alle skriptene som starter med en S i /etc/rc.d/rcS.d mappen etterfulgt av alle skriptene som begynner med en S i /etc/rc.d/rc?.d mappen hvor spørsmålstegnet er spesifisert av initdefault verdien.

Som en bekvemmelighet rc skriptet leser et bibliotek av funksjoner i /lib/lsb/init-functions. Dette biblioteket leser også en valgfri konfigurasjonsfil, /etc/sysconfig/rc.site. Hvilket som helst av systemets konfigurasjonsfilparametere beskrevet i påfølgende avsnitt kan være alternativt plassert i denne filen som tillater konsolidering av alle systemets parametere i denne ene filen.

Som en bekvemmelighet for feilsøking logger funksjonsskriptet også all utdata til /run/var/bootlog. Siden /run mappen er en tmpfs, er denne filen ikke vedvarende på tvers av oppstarter; men den er lagt til den mer permanente filen /var/log/boot.log på slutten av oppstartsprosessen.

9.6.2.1. Endre kjørenivåer

Endring av kjørenivåer er gjort med init <runlevel>, hvor <runlevel> er målet for kjørenivå. For eksempel for å starte datamaskinen på nytt, kan en bruker utstede init 6 kommandoen, som er et alias for reboot kommandoen. Likeså er, init 0 et alias for halt kommandoen.

Det er en rekke mapper under /etc/rc.d som ser ut som rc?.d (hvor ? er nummeret på kjørenivået) og rcS.d, alle inneholder en rekke symbolske lenker. Noen begynner med en K; de andre begynner med en S, og alle av dem har to tall etter forbokstaven. K betyr å stoppe (drepe) en tjeneste og S betyr å starte en tjeneste. Tallene bestemmer rekkefølgen skriptene kjøres i, fra 00 til 99—jo lavere tall, desto tidligere blir det utført. Når init bytter til et annet kjørenivå, de aktuelle tjenestene er enten startet eller stoppet, avhengig av valgt kjørenivå.

De virkelige skriptene er i /etc/rc.d/init.d. De gjør selve jobben, og alle symbolkoblingene peker til dem. K-lenker og S-lenker peker på samme skript i /etc/rc.d/init.d. Dette er fordi skriptene kan kalles med forskjellige parametere som start, stop, restart, reload, og status. Når en K-lenke oppstår, det aktuelle skriptet kjøres med stop argumentet. Når en S-kobling oppstår, kjøres det riktige skriptet med start argumentet.

Dette er beskrivelser av hva argumentene får skriptene til å gjøre:

start

Tjenesten blir startet.

stop

Tjenesten blir stoppet.

restart

Tjenesten stoppes og startes deretter på nytt.

reload

Konfigurasjonen av tjenesten blir oppdatert. Dette brukes etter at konfigurasjonsfilen til en tjeneste ble endret, når tjenesten ikke trenger å startes på nytt.

status

Forteller om tjenesten kjører og med hvilken PID.

Du kan gjerne endre måten oppstartsprosessen fungerer på (tross alt, det er ditt eget LFSsystem). Filene gitt her er et eksempel på hvordan det kan gjøres.

9.6.3. Udev oppstartsskripter

/etc/rc.d/init.d/udev initskriptet starter udevd, trigger alle "coldplug"-enheter som allerede er opprettet av kjernen og venter på at eventuelle regler skal fullføres. Skriptet fjerner også uevent behandleren fra standarden på /sbin/hotplug . Dette gjøres fordi kjernen ikke lenger trenger å kalle en ekstern binær. I stedet vil udevd lytte på en netlink socket for uevents som kjernen løfter.

/etc/rc.d/init.d/udev_retry initskriptet tar kontroll for å utløse hendelser på nytt for undersystemer som reglene kan avhenge av filsystemer som ikke er montert før mountfs skriptet kjøres (spesielt, /usr og /var kan forårsake dette). Disse skriptene kjører etter mountfs skriptet, så de reglene (hvis de utløses på nytt) bør lykkes andre gang. De er konfigurert fra /etc/sysconfig/udev_retry filen; alle andre ord i denne filen enn kommentarer regnes som undersystemnavn for å utløses ved nytt forsøk. For å finne delsystemet til en enhet, bruk udevadm info --attribute-walk <device> hvor <device> er en absolutt sti i /dev eller /sys som f.eks /dev/sr0 eller /sys/class/rtc.

For informasjon om lasting av kjernemoduler og udev, se Section 9.3.2.3, “Modullasting”.

9.6.4. Konfigurering av systemklokken

setclock skriptet leser tiden fra maskinvareklokken , også kjent som BIOS eller Complementary Metal Oxide Semiconductor (CMOS) klokke. Hvis maskinvareklokken er satt til UTC, vil dette skriptet konvertere maskinvareklokkens tid til lokal tid ved å bruke /etc/localtime filen (som forteller hwclock programmet hvilken tidssone som skal brukes). Det er ingen måte å oppdage om maskinvareklokken er satt til UTC eller ikke, så dette må konfigureres manuelt.

setclock programmet kjøres via udev når kjernen oppdager maskinvare kapasiteten ved oppstart. Den kan også kjøres manuelt med stop parameteren til å lagre systemtiden til CMOS-klokken.

Hvis du ikke husker om maskinvareklokken er satt til UTC eller ikke, finn ut ved å kjøre hwclock --localtime --show kommandoen. Dette vil vise hva gjeldende tid er i henhold til maskinvare klokken. Hvis denne tiden samsvarer med hva klokken din sier, er maskinvareklokken satt til lokal tid. Hvis utdataen fra hwclock ikke er lokal tid, sjansen er stor for at den er satt til UTC-tid. Bekreft dette ved å legge til eller trekke fra riktig antall timer for tidssonen til tiden vist av hwclock. For eksempel, hvis du for øyeblikket er i MST tidssonen, som også er kjent som GMT -0700, legg til syv timer til din lokale tid.

Endre verdien på UTC variabelen nedenfor til verdien 0 (null) hvis maskinvareklokken IKKE er satt til UTC-tid.

Opprett en ny fil /etc/sysconfig/clock ved å kjøre følgende:

cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock

UTC=1

# Set this to any options you might need to give to hwclock,
# such as machine hardware clock type for Alphas.
CLOCKPARAMS=

# End /etc/sysconfig/clock
EOF

Et godt hint som forklarer hvordan man skal håndtere tid på LFS er tilgjengelig på https://www.linuxfromscratch.org/hints/downloads/files/time.txt. Den forklarer problemstillinger som f.eks tidssoner, UTC og TZ miljøvariabelen.

[Note]

Note

Parameterne CLOCKPARAMS og UTC kan også angis i /etc/sysconfig/rc.site filen.

9.6.5. Konfigurering av Linux konsollen

Denne delen diskuterer hvordan du konfigurerer console oppstartsskriptet som setter opp tastaturkartet, konsollfonten og konsollkjerneloggens nivå. Hvis ikke-ASCII-tegn (f.eks. copyright-tegnet, britiske pund tegn og eurosymbol) ikke vil bli brukt, og tastaturet er et amerikansk, kan mye av denne delen hoppes over. Uten konfigurasjonsfilen, (eller tilsvarende innstillinger i rc.site), console vil ikke oppstartsskriptet gjøre noe.

console skriptet leser /etc/sysconfig/console filen for konfigurasjons informasjon. Bestem hvilket tastatur og skjermskrift som skal brukes. Diverse språkspesifikke HOWTOer kan også hjelpe med dette, se https://tldp.org/HOWTO/HOWTO-INDEX/other-lang.html. Hvis du fortsatt er i tvil, se i /usr/share/keymaps og /usr/share/consolefonts mappene for gyldige tastaturer og skjermfonter. Les loadkeys(1) og setfont(8) manualsider for å finne de riktige argumenter for disse programmene.

/etc/sysconfig/console filen skal inneholde linjer av formen: VARIABLE="verdi". Følgende variabler gjenkjennes:

LOGLEVEL

Denne variabelen spesifiserer loggnivået for kjernemeldinger som sendes til konsollen som angitt av dmesg -n. Gyldige nivåer er fra "1" (ingen meldinger) til "8". Standardnivået er "7".

KEYMAP

Denne variabelen spesifiserer argumentene for loadkeys programmet, vanligvis navnet på tastaturet å laste, f.eks., it. Hvis denne variabelen ikke er satt, vil oppstartsskriptet ikke kjøre loadkeys programmet, og standard kjernetastatur vil bli brukt. Merk at noen få tastaturer har flere versjoner med samme navn (cz og dens varianter i qwerty/ og qwertz/, es i olpc/ og qwerty/, og trf i fgGIod/ og qwerty/). I disse tilfellene bør også overordnet mappe spesifiseres (f.eks. qwerty/es) for å sikre at det riktige tastaturet er lastet.

KEYMAP_CORRECTIONS

Denne (sjelden brukte) variabelen spesifiserer argumentene for det andre kallet til loadkeys programmet. Dette er nyttig hvis keymap ikke helt er tilfredsstillende og en liten justering må gjøres. f.eks. å inkludere eurotegnet i et tastatur som vanligvis ikke har det, sett denne variabelen til euro2.

FONT

Denne variabelen spesifiserer argumentene for setfont programmet. Vanligvis inkluderer dette fontnavnet, -m, og navnet på programtegnkartet som skal lastes. For eksempel for å laste inn lat1-16 fonten sammen med 8859-1 applikasjonskartet (som er det passende i USA), sett denne variabelen til lat1-16 -m 8859-1. I UTF-8 modus bruker kjernen applikasjonens tegnkart for konvertering av sammensatte 8-bits nøkkelkoder i keymap til UTF-8, og dermed argumentet til parameteren "-m" bør settes til kodingen av komponerte tastaturkoder i tastaturkartet.

UNICODE

Sett denne variabelen til 1, yes, eller true for å sette konsollen til UTF-8 modus. Dette er nyttig i UTF-8 baserte lokaliteter og skadelig ellers.

LEGACY_CHARSET

For mange tastaturoppsett er det ikke noe Unicode-tastatur i Kbd pakken. console oppstartsskriptet vil konverter et tilgjengelig tastaturkartet til UTF-8 umiddelbart hvis denne variabelen er satt til kodingen av det tilgjengelige tastaturet som ikke er UTF-8.

Noen eksempler:

  • For et ikke-Unicode oppsett er bare KEYMAP- og FONT-variablene generelt nødvendige. For eksempel for et polsk oppsett, ville man bruke:

    cat > /etc/sysconfig/console << "EOF"
    # Begin /etc/sysconfig/console
    
    KEYMAP="pl2"
    FONT="lat2a-16 -m 8859-2"
    
    # End /etc/sysconfig/console
    EOF
  • Som nevnt ovenfor er det noen ganger nødvendig å justere et tastaturoppsett litt. Følgende eksempel legger til Euro-symbolet til Tysk tastaturkart:

    cat > /etc/sysconfig/console << "EOF"
    # Begin /etc/sysconfig/console
    
    KEYMAP="de-latin1"
    KEYMAP_CORRECTIONS="euro2"
    FONT="lat0-16 -m 8859-15"
    UNICODE="1"
    
    # End /etc/sysconfig/console
    EOF
  • Følgende er et Unicode-aktivert eksempel for bulgarsk, hvor en UTF-8 keymap finnes:

    cat > /etc/sysconfig/console << "EOF"
    # Begin /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="bg_bds-utf8"
    FONT="LatArCyrHeb-16"
    
    # End /etc/sysconfig/console
    EOF
  • På grunn av bruken av en 512-glyph LatArCyrHeb-16 font i forrige eksempel, lyse farger er ikke lenger tilgjengelig på Linux konsollen med mindre en rammebuffer brukes. Hvis man ønsker å ha lyse farger uten en rammebuffer og kan leve uten karakterer som ikke tilhører språket hans, er det fortsatt mulig å bruke en språkspesifikk font med 256 glyffer, som illustrert nedenfor:

    cat > /etc/sysconfig/console << "EOF"
    # Begin /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="bg_bds-utf8"
    FONT="cyr-sun16"
    
    # End /etc/sysconfig/console
    EOF
  • Følgende eksempel illustrerer keymap sin autokonvertering fra ISO-8859-15 til UTF-8 og aktivering av døde nøkler i Unicode-modus:

    cat > /etc/sysconfig/console << "EOF"
    # Begin /etc/sysconfig/console
    
    UNICODE="1"
    KEYMAP="de-latin1"
    KEYMAP_CORRECTIONS="euro2"
    LEGACY_CHARSET="iso-8859-15"
    FONT="LatArCyrHeb-16 -m 8859-15"
    
    # End /etc/sysconfig/console
    EOF
  • Noen tastaturmapper har døde taster (dvs. taster som ikke produserer en karakter av seg selv, men legger en aksent på karakteren som er produsert ved neste nøkkel) eller definer komposisjonsregler (som f.eks: press Ctrl+. A E for å hente Æ i standard tastaturoppsett). Linux-6.4.12 tolker døde taster og komposisjonsregler i keymap riktig bare når kildetegnene som skal komponeres sammen ikke er multibyte. Denne mangelen påvirker ikke tastaturkart for europeiske språk, fordi aksenter legges til ASCII uten aksent tegn, eller to ASCII-tegn er satt sammen. Imidlertid, i UTF-8-modus er det et problem; f.eks. for det greske språket, hvor man noen ganger trenger å sette en aksent på bokstaven alpha. Løsningen er enten å unngå bruk av UTF-8, eller å installere X-vindussystemet som ikke har denne begrensningen i inndata håndtering.

  • For kinesisk, japansk, koreansk og noen andre språk, Linux konsollen kan ikke konfigureres til å vise de nødvendige tegnene. Brukere som trenger slike språk bør installere et X Window System, fonter som dekker de nødvendige tegnområdene og den riktige inndatametoden (f.eks. SCIM, støtter et bredt utvalg av språk).

[Note]

Note

/etc/sysconfig/console filen kontroller kun lokaliseringen av Linux-tekstkonsollen. Det har ingenting med innstilling å gjøre riktig tastaturoppsett og terminalfonter i X Window System, med ssh økter, eller med en seriell konsoll. I slike situasjoner, begrensninger nevnt i de to siste listepunktene ovenfor gjelder ikke.

9.6.6. Opprette filer ved oppstart

Noen ganger er det ønskelig å lage filer ved oppstart. For eksempel, /tmp/.ICE-unix mappen er ofte nødvendig. Dette kan gjøres ved å opprette en oppføring i /etc/sysconfig/createfiles konfigurasjonsskriptet. Formatet til denne filen er innebygd i kommentarene til standard konfigurasjonsfil.

9.6.7. Konfigurering av sysklogd skriptet

sysklogd skriptet starter syslogd programmet som en del av System V initialisering. -m 0 alternativet slår av det periodiske tidsstempelet syslogd skriver til loggfilene hvert 20. minutt som standard. Hvis du vil slå på dette periodiske tidsstempelmerket, rediger /etc/sysconfig/rc.site og definere variabelen SYSKLOGD_PARMS til ønsket verdi. For å fjerne alle parametere, sett variabelen til en nullverdi:

SYSKLOGD_PARMS=

Se man syslogd for flere alternativer.

9.6.8. rc.site filen

Den valgfrie /etc/sysconfig/rc.site filen inneholder innstillinger som angis automatisk for hvert SystemV oppstartsskript. Det kan alternativt angi verdiene spesifisert i hostname, console, og clock filer i /etc/sysconfig/ mappen. Hvis tilknyttede variabler er til stede i begge disse separate filene og rc.site, verdiene i de skriptspesifikke filene har presedens.

rc.site inneholder også parametere som kan tilpasse andre aspekter av oppstartsprosessen. Stille inn IPROMPT variabelen vil aktivere selektiv kjøring av oppstartsskript. Andre alternativer er beskrevet i filkommentarene. Standardversjonen av filen er som følger:

# rc.site
# Optional parameters for boot scripts.

# Distro Information
# These values, if specified here, override the defaults
#DISTRO="Linux From Scratch" # The distro name
#DISTRO_CONTACT="lfs-dev@lists.linuxfromscratch.org" # Bug report address
#DISTRO_MINI="LFS" # Short name used in filenames for distro config

# Define custom colors used in messages printed to the screen

# Please consult `man console_codes` for more information
# under the "ECMA-48 Set Graphics Rendition" section
#
# Warning: when switching from a 8bit to a 9bit font,
# the linux console will reinterpret the bold (1;) to
# the top 256 glyphs of the 9bit font.  This does
# not affect framebuffer consoles

# These values, if specified here, override the defaults
#BRACKET="\\033[1;34m" # Blue
#FAILURE="\\033[1;31m" # Red
#INFO="\\033[1;36m"    # Cyan
#NORMAL="\\033[0;39m"  # Grey
#SUCCESS="\\033[1;32m" # Green
#WARNING="\\033[1;33m" # Yellow

# Use a colored prefix
# These values, if specified here, override the defaults
#BMPREFIX="      "
#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL} "
#FAILURE_PREFIX="${FAILURE}*****${NORMAL} "
#WARNING_PREFIX="${WARNING} *** ${NORMAL} "

# Manually set the right edge of message output (characters)
# Useful when resetting console font during boot to override
# automatic screen width detection
#COLUMNS=120

# Interactive startup
#IPROMPT="yes" # Whether to display the interactive boot prompt
#itime="3"    # The amount of time (in seconds) to display the prompt

# The total length of the distro welcome string, without escape codes
#wlen=$(echo "Welcome to ${DISTRO}" | wc -c )
#welcome_message="Welcome to ${INFO}${DISTRO}${NORMAL}"

# The total length of the interactive string, without escape codes
#ilen=$(echo "Press 'I' to enter interactive startup" | wc -c )
#i_message="Press '${FAILURE}I${NORMAL}' to enter interactive startup"

# Set scripts to skip the file system check on reboot
#FASTBOOT=yes

# Skip reading from the console
#HEADLESS=yes

# Write out fsck progress if yes
#VERBOSE_FSCK=no

# Speed up boot without waiting for settle in udev
#OMIT_UDEV_SETTLE=y

# Speed up boot without waiting for settle in udev_retry
#OMIT_UDEV_RETRY_SETTLE=yes

# Skip cleaning /tmp if yes
#SKIPTMPCLEAN=no

# For setclock
#UTC=1
#CLOCKPARAMS=

# For consolelog (Note that the default, 7=debug, is noisy)
#LOGLEVEL=7

# For network
#HOSTNAME=mylfs

# Delay between TERM and KILL signals at shutdown
#KILLDELAY=3

# Optional sysklogd parameters
#SYSKLOGD_PARMS="-m 0"

# Console parameters
#UNICODE=1
#KEYMAP="de-latin1"
#KEYMAP_CORRECTIONS="euro2"
#FONT="lat0-16 -m 8859-15"
#LEGACY_CHARSET=

9.6.8.1. Tilpasse oppstarts og avslutnings skriptene

LFS oppstartsskriptene starter opp og slår av et system på en rimelig effektiv måte, men det er noen få justeringer du kan gjøre i rc.site filen for å forbedre hastigheten enda mer og for å justere meldinger i henhold til til dine preferanser. For å gjøre dette, juster innstillingene i /etc/sysconfig/rc.site filen ovenfor.

  • Under oppstartsskriptet udev, er det et kall til udev settle som krever litt tid for å fullføres. Denne tiden kan være nødvendig eller ikke, avhengig av tilstedeværende enheter i systemet. Hvis du bare har enkle partisjoner og et enkelt ethernet kort, vil oppstartsprosessen sannsynligvis ikke trenge å vente på denne kommandoen. For å hopp over det, sett variabelen OMIT_UDEV_SETTLE=y.

  • Oppstartsskriptet udev_retry kjører også udev settle som standard. Denne kommandoen er kun nødvendig som standard hvis /var mappen er separat montert. Dette er fordi klokken trenger filen /var/lib/hwclock/adjtime. Andre tilpasninger kan også må vente på at udev skal fullføres, men i mange installasjoner er det ikke behov for det. Hopp over kommandoen ved å sette variabelen OMIT_UDEV_RETRY_SETTLE=y.

  • Som standard er filsystemkontrollene stille. Dette kan se ut til å være en forsinkelse under oppstartsprosessen. For å slå på fsck utdata, sett variabelen VERBOSE_FSCK=y.

  • Ved omstart kan det være lurt å hoppe over filsystemkontrollen, fsck, helt. For å gjøre dette, opprett enten filen /fastboot eller start systemet på nytt med kommandoen /sbin/shutdown -f -r now. På den annen side kan du tvinge alle filsystemer til å bli kontrollert ved å opprette /forcefsck eller kjøre shutdown med -F parameter i stedet for -f.

    Å sette variabelen FASTBOOT=y vil deaktivere fsck under oppstartsprosessen til den fjernes. Dette anbefales ikke på permanent basis.

  • Normalt slettes alle filene i /tmp mappen ved oppstart. Avhengig av antall filer eller mapper som er tilstede, kan dette føre til en merkbar forsinkelse i oppstartsprosessen. For å hoppe over å fjerne disse filene, sett inn variabelen SKIPTMPCLEAN=y.

  • Under avstengning, init programmet sender et TERM signal til hvert program det har startet (f.eks. agetty), venter på en tid (standard 3 sekunder), og sender hver prosess et KILL signal og venter en gang til. Denne prosessen gjentas i sendsignals skript for alle prosesser som ikke stenges av deres egne skript. Forsinkelse for init kan stilles inn ved å sende en parameter. For eksempel for å fjerne forsinkelsen i init, bruk -t0 parameteren når du slår av eller starter på nytt (f.eks. /sbin/shutdown -t0 -r now). Forsinkelsen for sendsignals skriptet kan hoppes over ved å sette parameteren KILLDELAY=0.