Innehållsförteckning
Det är klokt att du som systemadministratör vet ungefär hur Debian-systemet startas och konfigureras. Även om de exakta detaljerna finns i källfilerna för de installerade paketen och deras dokumentationer, är det lite överväldigande för de flesta av oss.
Här är en grov översikt över de viktigaste punkterna i initieringen av Debiansystemet. Eftersom Debiansystemet är ett rörligt mål, bör du läsa den senaste dokumentationen.
Debian Linux Kernel Handbook är den primära källan till information om Debians kärnprogram.
bootup(7) beskriver systemets uppstartsprocess baserad på
systemd. (Senaste Debian)
boot(7) beskriver systemets uppstartsprocess baserat på
UNIX System V Release 4. (Äldre Debian)
Datorsystemet genomgår flera faser av boot strap-processer från det att det slås på tills det erbjuder ett fullt fungerande operativsystem (OS) till användaren.
För enkelhetens skull begränsar jag diskussionen till den typiska PC-plattformen med standardinstallation.
Den typiska boot strap-processen är som en fyrstegsraket. Varje steg i raketen överlämnar systemkontrollen till nästa steg.
Naturligtvis kan dessa konfigureras på olika sätt. Om du till exempel har kompilerat din egen kärna kanske du hoppar över steget med mini-Debian-systemet. Så anta inte att detta är fallet för ditt system förrän du har kontrollerat det själv.
UEFI (Unified Extensible Firmware Interface) definierar en starthanterare som en del av UEFI-specifikationen. När en dator slås på är starthanteraren det första steget i startprocessen som kontrollerar startkonfigurationen och utifrån dess inställningar kör den angivna startladdaren för operativsystemet eller operativsystemets kärna (vanligtvis startladdaren). Startkonfigurationen definieras av variabler som lagras i NVRAM, inklusive variabler som anger filsystemets sökvägar till OS-laddare eller OS-kärnor.
En EFI-systempartition (ESP) är en datalagringsenhetspartition som används i datorer som följer UEFI-specifikationen. Den öppnas av UEFI-firmware när datorn slås på och lagrar UEFI-program och de filer som dessa program behöver för att köras, inklusive operativsystemets startladdare. (I äldre PC-system kan BIOS som lagras i MBR användas i stället)
Startladdaren är det andra steget i startprocessen som startas av UEFI. Den laddar systemkärnans avbildning och initrd-avbildningen till minnet och överlämnar kontrollen till dem. Denna initrd-bild är rotfilsystembilden och dess stöd beror på vilken startladdare som används.
Debian-systemet använder normalt Linux-kärnan som standardkärna för systemet. Initrd-avbildningen för den aktuella Linuxkärnan 5.x är tekniskt sett initramfs-avbildningen (initial RAM filesystem).
Det finns många olika boot loaders och konfigurationsalternativ.
Tabell 3.1. Lista över startladdare
| paket | popcon | storlek | initrd | startladdare | beskrivning |
|---|---|---|---|---|---|
| grub-efi-amd64 | I:430 | 142 | Stöds | GRUB UEFI | Den är tillräckligt smart för att förstå diskpartitioner och filsystem som vfat, ext4, .... (UEFI) |
| grub-pc | V:17, I:545 | 479 | Stöds | GRUB 2 | Den är tillräckligt smart för att förstå diskpartitioner och filsystem som vfat, ext4, .... (BIOS) |
| grub-rescue-pc | V:0, I:0 | 7183 | Stöds | GRUB 2 | Detta är GRUB 2 startbara räddningsavbildningar (CD och diskett) (PC/BIOS-version) |
| syslinux | V:2, I:32 | 325 | Stöds | Isolinux | Detta förstår filsystemet ISO9660. Detta används av start-CD:n. |
| syslinux | V:2, I:32 | 325 | Stöds | Syslinux | Detta förstår MSDOS filsystem (FAT). Detta används av startdisketten. |
| loadlin | V:0, I:0 | 87 | Stöds | Loadlin | Nytt system startas från FreeDOS/MSDOS-systemet. |
| mbr | V:0, I:3 | 47 | Stöds inte | MBR av Neil Turton | Detta är fri programvara som ersätter MSDOS MBR. Detta förstår bara diskpartitioner. |
|
Varning |
|---|---|
|
Lek inte med startladdare utan att ha ett startbart räddningsmedium
(USB-minne, CD eller diskett) som skapats från bilder i
|
För UEFI-system läser GRUB2 först ESP-partitionen och använder UUID som
anges för search.fs_uuid i
"/boot/efi/EFI/debian/grub.cfg" för att bestämma
partitionen i GRUB2-menyns konfigurationsfil
"/boot/grub/grub.cfg".
Den viktigaste delen av GRUB2-menykonfigurationsfilen ser ut som följer:
menuentry 'Debian GNU/Linux' ... {
load_video
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root fe3e1db5-6454-46d6-a14c-071208ebe4b1
echo 'Loading Linux 5.10.0-6-amd64 ...'
linux /boot/vmlinuz-5.10.0-6-amd64 root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-5.10.0-6-amd64
}
För den här delen av /boot/grub/grub.cfg betyder den här
menyposten följande.
Tabell 3.2. Betydelsen av menyalternativet i ovanstående del av
/boot/grub/grub.cfg
| inställningen | värde |
|---|---|
| GRUB2-moduler laddade | gzio, part_gpt,
ext2 |
| root filsystem partition används | partition identifierad av
UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 |
| sökväg till kärnavbildningen i rotfilsystemet | /boot/vmlinuz-5.10.0-6-amd64 |
| parameter för kärnstart som används | "root=UUID=fe3e1db5-6454-46d6-a14c-071208ebe4b1 ro quiet" |
| initrd-bildsökväg i rotfilsystemet | /boot/initrd.img-5.10.0-6-amd64 |
|
Tips |
|---|---|
|
Du kan göra det möjligt att se kärnans startloggmeddelanden genom att ta
bort |
|
Tips |
|---|---|
|
Du kan anpassa GRUB-startbilden genom att ställa in variabeln
|
Se "info grub" och grub-install(8).
Mini-Debian-systemet är det 3:e steget i startprocessen som startas av startladdaren. Det kör systemkärnan med dess rotfilsystem i minnet. Detta är ett valfritt förberedande steg i startprocessen.
|
Notera |
|---|---|
|
Termen "mini-Debian-systemet" har myntats av författaren för att beskriva det tredje steget i uppstartsprocessen i det här dokumentet. Det här systemet kallas vanligen initrd- eller initramfs-systemet. Ett liknande system i minnet används av Debians installationsprogram. |
Programmet "/init" körs som det första programmet i detta
rotfilsystem på minnet. Det är ett program som initierar kärnan i
användarutrymmet och överlämnar kontrollen till nästa steg. Detta
mini-Debian-system erbjuder flexibilitet i uppstartsprocessen, t.ex. genom
att lägga till kärnmoduler före den huvudsakliga uppstartsprocessen eller
genom att montera rotfilsystemet som ett krypterat filsystem.
Programmet "/init" är ett skalskriptprogram om initramfs
skapades av initramfs-tools.
Du kan avbryta denna del av startprocessen för att få root shell genom att
ange "break=init" etc. till kernel boot parameter. Se
skriptet "/init" för fler avbrottsvillkor. Den här
skalmiljön är tillräckligt sofistikerad för att du ska kunna göra en bra
inspektion av maskinens maskinvara.
De kommandon som finns tillgängliga i detta mini-Debian-system är avskalade
och tillhandahålls huvudsakligen av ett GNU-verktyg som heter
busybox(1).
Programmet "/init" är ett binärt
systemd-program om initramfs skapades av
dracut.
Kommandon som är tillgängliga i detta mini-Debian-system är avskalade från
systemd(1)-miljön.
|
Observera |
|---|---|
|
Du måste använda alternativet " |
Det normala Debian-systemet är det 4:e steget i startprocessen som startas av mini-Debian-systemet. Systemkärnan för mini-Debian-systemet fortsätter att köras i den här miljön. Rotfilsystemet byts från det som finns i minnet till det som finns på den riktiga hårddiskens filsystem.
Init-programmet körs som det första programmet
med PID=1 för att utföra den huvudsakliga startprocessen för att starta
många program. Standardfilvägen för init-programmet är
"/usr/sbin/init", men den kan ändras med kärnans
startparameter "init=/path/to/init_program".
"/usr/sbin/init" är symlänkat till
"/lib/systemd/systemd" efter Debian 8 Jessie (utgiven
2015).
|
Tips |
|---|---|
|
Det faktiska init-kommandot på ditt system kan verifieras med kommandot
" |
Tabell 3.3. Lista över uppstartsverktyg för Debian-systemet
| paket | popcon | storlek | beskrivning |
|---|---|---|---|
systemd
|
V:898, I:978 | 10634 | händelsebaserad init(8)-daemon för samtidighet
(alternativ till sysvinit) |
cloud-init
|
V:2, I:6 | 3231 | initialiseringssystem för molninstanser för infrastruktur |
systemd-sysv
|
V:893, I:977 | 94 | de manussidor och länkar som behövs för att systemd ska
kunna ersätta sysvinit |
init-system-helpers
|
V:910, I:985 | 133 | hjälpverktyg för att växla mellan sysvinit och
systemd |
initscripts
|
V:19, I:75 | 203 | skript för initiering och avstängning av systemet |
sysvinit-core
|
V:3, I:4 | 369 | System-V-liknande init(8)-verktyg |
sysv-rc
|
V:38, I:80 | 91 | System-V-liknande mekanism för ändring av runlevel |
sysvinit-utils
|
V:720, I:999 | 106 | System-V-liknande verktyg(startpar(8),
bootlogd(8), ...) |
lsb-base
|
V:266, I:385 | 12 | Funktionalitet för init-skript i Linux Standard Base 3.2 |
insserv
|
V:41, I:79 | 132 | verktyg för att organisera startsekvensen med hjälp av LSB init.d-skriptberoenden |
kexec-tools
|
V:1, I:5 | 320 | kexec-verktyg för kexec(8)-omstart (varm omstart) |
systemd-bootchart
|
V:0, I:0 | 131 | analysator för prestanda i startprocessen |
mingetty
|
V:0, I:2 | 36 | konsol endast getty(8) |
mgetty
|
V:0, I:0 | 315 | smart modem getty(8) ersättning |
|
Tips |
|---|---|
|
Se Debian wiki: BootProcessSpeedup för de senaste tipsen för att snabba upp uppstartsprocessen. |
När Debian-systemet startar, startas /usr/sbin/init
symlänkad till /usr/lib/systemd som
init-systemprocessen(PID=1) som ägs av
root(UID=0). Se systemd(1).
Systemd init-processen skapar parallella processer
baserat på enhetskonfigurationsfilerna (se
systemd.unit(5)) som är skrivna i deklarativ stil
istället för SysV-liknande procedurell stil.
De processer som skapas placeras i individuella Linux-kontrollgrupper som får sitt namn efter den enhet de tillhör i den privata systemd-hierarkin (se cgroups och Avsnitt 4.7.5, ”Säkerhetsfunktioner i Linux”).
Enheter för systemläget laddas från "System Unit Search Path" som beskrivs i
systemd.unit(5). De viktigaste är följande i
prioritetsordning:
"/etc/systemd/system/*": Systemenheter som skapats av
administratören
"/run/systemd/system/*": Runtime-enheter
"/lib/systemd/system/*": Systemenheter som installerats
av distributionens pakethanterare
Deras inbördes beroenden specificeras av direktiven
"Wants=", "Requires=",
"Before=", "After=", ... (se "MAPPING
OF UNIT PROPERTIES TO THEIR INVERSES" i
systemd.unit(5)). Resurskontrollerna är också
definierade (se systemd.resource-control(5)).
Suffixet i enhetens konfigurationsfil kodar deras typer som:
*.service beskriver den process som styrs
och övervakas av systemd. Se
systemd.service(5).
*.device beskriver den enhet som
exponeras i sysfs(5) och udev(7)
enhetsträdet. Se systemd.device(5).
*.mount beskriver den monteringspunkt för
filsystemet som kontrolleras och övervakas av systemd. Se
systemd.mount(5).
*.automount beskriver den automatiska
monteringspunkten för filsystemet som kontrolleras och övervakas av
systemd. Se systemd.automount(5).
*.swap beskriver den swap-enhet eller
-fil som kontrolleras och övervakas av systemd. Se
systemd.swap(5).
*.path beskriver den sökväg som övervakas
av systemd för sökvägsbaserad aktivering. Se
systemd.path(5).
*.socket beskriver det uttag som styrs
och övervakas av systemd för uttagsbaserad aktivering. Se
systemd.socket(5).
*.timer beskriver den timer som styrs och
övervakas av systemd för timerbaserad aktivering. Se
systemd.timer(5).
*.slice hanterar resurser med
cgroups(7). Se systemd.slice(5).
*.scope skapas programmatiskt med hjälp
av bussgränssnitten i systemd för att hantera en
uppsättning systemprocesser. Se systemd.scope(5).
*.target grupperar andra
enhetskonfigurationsfiler för att skapa synkroniseringspunkten under
uppstarten. Se systemd.target(5).
Vid systemstart (dvs. init) försöker systemd-processen
att starta "/lib/systemd/system/default.target (normalt
symlänkat till "graphical.target"). Först dras några
speciella målenheter (se systemd.special(7)) som
"local-fs.target", "swap.target" och
"cryptsetup.target" in för att montera filsystemet.
Sedan dras även andra målenheter in genom målenhetsberoendena. För mer
information, läs bootup(7).
systemd erbjuder funktioner för bakåtkompatibilitet.
Startskript i SysV-stil i
"/etc/init.d/rc[0123456S].d/[KS]name"
tolkas fortfarande och telinit(8) översätts till begäran
om aktivering av systemd-enheter.
|
Observera |
|---|---|
|
Emulerade runlevel 2 till 4 är alla symlänkade till samma
" |
När en användare loggar in på Debiansystemet via gdm3(8),
sshd(8), etc., startas /lib/systemd/system
--user som den process för hantering av användartjänster som ägs
av motsvarande användare. Se systemd(1).
Processen systemd user service manager skapar parallella
processer baserat på de deklarativa konfigurationsfilerna för enheter (se
systemd.unit(5) och user@.service(5)).
Enheter för användarläget laddas från "User Unit Search Path" som beskrivs i
systemd.unit(5). De viktigaste är följande i
prioritetsordning:
"~/.config/systemd/user/*": Enheter för
användarkonfiguration
"/etc/systemd/user/*": Användarenheter som skapats av
administratören
"/run/systemd/user/*": Runtime-enheter
"/lib/systemd/user/*": Användarenheter som installerats
av distributionens pakethanterare
Dessa hanteras på samma sätt som Avsnitt 3.2.1, ”Systemd startas”.
Det kärnfelmeddelande som visas på konsolen kan konfigureras genom att ställa in dess tröskelnivå.
# dmesg -n3
Tabell 3.4. Lista över felnivåer i kärnan
| fel nivå värde | namn på felnivå | betydelse |
|---|---|---|
| 0 | KERN_EMERG | systemet är oanvändbart |
| 1 | KERN_ALERT | åtgärder måste vidtas omedelbart |
| 2 | KERN_CRIT | kritiska förhållanden |
| 3 | KERN_ERR | felförhållanden |
| 4 | KERN_VARNING | varningsvillkor |
| 5 | KERN_NOTICE | normalt men signifikant tillstånd |
| 6 | KERN_INFO | informativ |
| 7 | KERN_DEBUG | meddelanden på felsökningsnivå |
Under systemd loggas både kärn- och systemmeddelanden av
journaltjänsten systemd-journald.service (a.k.a
journald) antingen till en beständig binär data under
"/var/log/journal" eller till en flyktig binär data under
"/run/log/journal/". Dessa binära loggdata nås med
kommandot journalctl(1). Du kan t.ex. visa loggen från
den senaste uppstarten på följande sätt:
$ journalctl -b
Tabell 3.5. Lista över typiska journalctl-kommandoutdrag
| Operation | Kommandosnuttar |
|---|---|
| Visa loggen för systemtjänster och kärnan från den senaste uppstarten | "journalctl -b --system" |
| Visa logg för tjänster för den aktuella användaren från den senaste uppstarten | "journalctl -b --user" |
Visa jobblogg för "$unit" från den senaste uppstarten |
"journalctl -b -u $enhet" |
Visa jobblogg för "$unit" ( "tail
-f"-stil) från den senaste uppstarten |
"journalctl -b -u $unit -f" |
Under systemd kan systemloggningsverktyget
rsyslogd(8) avinstalleras. Om det installeras ändrar det
sitt beteende för att läsa flyktiga binära loggdata (i stället för
"/dev/log" som var standard före systemd) och för att
skapa traditionella permanenta ASCII-systemloggdata. Detta kan anpassas med
"/etc/default/rsyslog" och
"/etc/rsyslog.conf" för både loggfilen och visningen på
skärmen. Se rsyslogd(8) och
rsyslog.conf(5). Se även Avsnitt 9.3.2, ”Logganalysator”.
Systemd erbjuder inte bara init-system utan även
generiska systemhanteringsåtgärder med kommandot
systemctl(1).
Tabell 3.6. Lista över typiska kommandoutdrag för systemctl
| Operation | Kommandosnuttar |
|---|---|
| Lista alla tillgängliga enhetstyper | "systemctl list-units --type=help" |
| Lista alla målenheter i minnet | "systemctl list-units --type=target" |
| Lista alla serviceenheter i minnet | "systemctl list-units -typ=service" |
| Lista alla enheter i minnet | "systemctl list-units --type=device" |
| Lista alla monteringsenheter i minnet | "systemctl list-units --type=mount" |
| Lista alla uttagsenheter i minnet | "systemctl list-sockets" |
| Lista alla timerenheter i minnet | "systemctl list-timers" |
Starta "$unit" |
"systemctl start $unit" |
Stoppa "$enhet" |
"systemctl stop $unit" |
| Ladda om tjänstespecifik konfiguration | "systemctl reload $unit" |
Stoppa och starta alla "$enheter" |
"systemctl restart $unit" |
Starta "$unit" och stoppa alla andra |
"systemctl isolate $unit" |
Byt till "grafisk" (GUI-system) |
"systemctl isolera grafisk" |
Växla till "multi-user" (CLI-system) |
"systemctl isolate multi-user" |
Växla till "räddning" (CLI-system med en användare) |
"systemctl isolate rescue" |
Skicka dödssignal till "$unit" |
"systemctl kill $unit" |
Kontrollera om tjänsten "$unit" är aktiv |
"systemctl is-active $unit" |
Kontrollera om tjänsten "$unit" är misslyckad |
"systemctl is-failed $unit" |
Kontrollera status för "$unit|$PID|device" |
"systemctl status $unit|$PID|$device" |
Visa egenskaper för "$unit|$job" |
"systemctl show $unit|$job" |
Återställning misslyckades "$unit" |
"systemctl reset-failed $unit" |
| Lista beroendet av alla enhetstjänster | "systemctl list-beroenden --all" |
| Lista enhetsfiler installerade på systemet | "systemctl list-unit-files" |
Aktivera "$unit" (lägg till symlänk) |
"systemctl enable $unit" |
Inaktivera "$unit" (ta bort symlänk) |
"systemctl disable $unit" |
Avmaskera "$unit" (ta bort symlänken till
"/dev/null") |
"systemctl unmask $unit" |
Mask "$unit" (lägg till symlänk till
"/dev/null") |
"systemctl mask $enhet" |
| Hämta inställning för standardmål | "systemctl get-default" |
Ställ in default-target till "graphical" (GUI-system) |
"systemctl set-default graphical" |
Ställ in default-target till "multi-user" (CLI-system) |
"systemctl set-default multi-user" |
| Visa arbetsmiljön | "systemctl show-environment" |
Ställ in "variabel" för jobbmiljö till
"värde" |
"systemctl set-environment variable=value" |
Oreglerad "variabel" i arbetsmiljön |
"systemctl unset-environment variable" |
| Ladda om alla enhetsfiler och daemons | "systemctl daemon-reload" |
| Stäng av systemet | "systemctl poweroff" |
| Stänga av och starta om systemet | "systemctl reboot" |
| Stänga av systemet | "systemctl suspend" |
| Lägg systemet i viloläge | "systemctl hibernate" |
Här kan "$unit" i exemplen ovan vara ett enskilt
enhetsnamn (suffix som .service och
.target är valfria) eller, i många fall, flera
enhetsspecifikationer (globs i shell-stil "*",
"?", "[]" med
fnmatch(3) som kommer att matchas mot de primära namnen
på alla enheter som för närvarande finns i minnet).
Kommandon som ändrar systemtillståndet i exemplen ovan föregås vanligtvis av
"sudo" för att uppnå den administrativa behörighet som
krävs.
Utdata från "systemctl status $unit|$PID|$device"
använder punktens färg ("●") för att sammanfatta enhetens tillstånd på ett
överskådligt sätt.
Vitt "●" anger ett "inaktivt" eller "avaktiverande" tillstånd.
Röd "●" indikerar ett "misslyckat" eller "felaktigt" tillstånd.
Grönt "●" indikerar ett "aktivt", "omladdande" eller "aktiverande" tillstånd.
Här är en lista över andra kommandoutdrag för övervakning under
systemd. Läs relevanta manpages inklusive
cgroups(7).
Tabell 3.7. Lista över andra kommandosnuttar för övervakning under
systemd
| Operation | Kommandosnuttar |
|---|---|
| Visa tidsåtgången för varje initialiseringssteg | "systemd-analysera tid" |
| Lista över alla enheter efter tid för initialisering | "systemd-analyze blame" |
Ladda och upptäcka fel i filen "$unit" |
"systemd-analyze verify $unit" |
| Visa kortfattad runtime-statusinformation för användaren av den uppringandes session | "loginctl användarstatus" |
| Visa kortfattad statusinformation under körning för den uppringandes session | "loginctl session-status" |
| Spåra startprocessen av cgroups | "systemd-cgls" |
| Spåra startprocessen av cgroups | "ps xawf -eo pid,user,cgroup,args" |
| Spåra startprocessen av cgroups | Läs sysfs under
"/sys/fs/cgroup/" |
Kärnan underhåller systemets värdnamn.
Systemenheten som startas av systemd-hostnamed.service
ställer in systemets värdnamn vid start till det namn som finns lagrat i
"/etc/hostname". Den här filen ska bara innehålla systemets värdnamn, inte ett
fullständigt kvalificerat domännamn.
För att skriva ut det aktuella värdnamnet kör hostname(1)
utan argument.
Monteringsalternativen för normala disk- och nätverksfilsystem anges i
"/etc/fstab". Se fstab(5) och Avsnitt 9.6.7, ”Optimering av filsystem med hjälp av mount-alternativ”.
Konfigurationen av det krypterade filsystemet anges i
"/etc/crypttab". Se crypttab(5)
Konfigurationen av RAID-programvara med mdadm(8) anges i
"/etc/mdadm/mdadm.conf". Se
mdadm.conf(5).
|
Varning |
|---|---|
|
Efter montering av alla filsystem rensas temporära filer i
" |
Nätverksgränssnitt initialiseras vanligtvis i
"networking.service" för
lo-gränssnittet och
"NetworkManager.service" för andra gränssnitt på moderna
Debian-skrivbordssystem under systemd.
Se Kapitel 5, Nätverkskonfiguration för information om hur du konfigurerar dem.
Molnsysteminstansen kan startas som en klon av "Debian Official Cloud Images"
eller liknande bilder. För en sådan systeminstans kan personligheter som
värdnamn, filsystem, nätverk, lokal, SSH-nycklar, användare och grupper
konfigureras med hjälp av funktioner som tillhandahålls av
cloud-init- och netplan.io-paketen med
flera datakällor, t.ex. filer som placerats i den ursprungliga
systemavbildningen och externa data som tillhandahålls under lanseringen.
Dessa paket möjliggör deklarativ systemkonfiguration med hjälp av YAML-data.
Se mer på "Cloud Computing with Debian and its descendants", "Cloud-init documentation" och Avsnitt 5.4, ”Den moderna nätverkskonfigurationen för moln”.
Vid standardinstallation startas många nätverkstjänster (se Kapitel 6, Nätverkstillämpningar) som daemonprocesser efter network
.target vid uppstarten av systemd.
"sshd" är inget undantag. Låt oss ändra detta till
on-demand start av "sshd" som ett exempel på anpassning.
Först inaktiverar du den systeminstallerade serviceenheten.
$ sudo systemctl stop sshd.service $ sudo systemctl mask sshd.service
Systemet för aktivering av uttag på begäran i de klassiska Unix-tjänsterna
skedde via superservern inetd (eller
xinetd). Under systemd kan
motsvarande aktiveras genom att lägga till enhetskonfigurationsfilerna
*.socket och * .service.
sshd.socket för att ange ett uttag att lyssna på
[Unit] Description=SSH Socket for Per-Connection Servers [Socket] ListenStream=22 Accept=yes [Install] WantedBy=sockets.target
sshd@.service som den matchande servicefilen för
sshd.socket
[Unit] Description=SSH Per-Connection Server [Service] ExecStart=-/usr/sbin/sshd -i StandardInput=socket
Ladda sedan om.
$ sudo systemctl daemon-reload
Systemet udev tillhandahåller en mekanism
för automatisk upptäckt och initialisering av maskinvara (se
udev(7)) sedan Linux-kärnan 2.6. När kärnan upptäcker
varje enhet startar udev-systemet en användarprocess som använder
information från sysfs-filsystemet (se Avsnitt 1.2.12, ”procfs och sysfs”), laddar nödvändiga kärnmoduler med hjälp av
modprobe(8)-programmet (se Avsnitt 3.9, ”Initialisering av kärnmodulen”) och skapar motsvarande
enhetsnoder.
|
Tips |
|---|---|
|
Om
" För monteringsregler i " |
Eftersom udev-systemet är något av ett rörligt mål, lämnar jag detaljerna till andra dokumentationer och beskriver minimiinformationen här.
|
Varning |
|---|---|
|
Försök inte att köra långvariga program som t.ex. säkerhetskopieringsskript
med |
Programmet modprobe(8) gör det möjligt för oss att
konfigurera Linux-kärnan från användarprocessen genom att lägga till och ta
bort kärnmoduler. Udev-systemet (se Avsnitt 3.8, ”Udev-systemet”)
automatiserar dess anrop för att underlätta initieringen av kärnmodulen.
Det finns moduler som inte är hårdvarumoduler och speciella
drivrutinsmoduler för hårdvara, t.ex. följande, som måste förinstalleras
genom att de listas i filen "/etc/modules" (se
modules(5)).
TUN/TAP-moduler som tillhandahåller virtuell enhet för punkt-till-punkt-nätverk (TUN) och virtuell enhet för Ethernet-nätverk (TAP),
netfilter-moduler som ger
netfilter-brandväggsfunktioner(iptables(8), Avsnitt 5.7, ”Netfilters infrastruktur”), och
drivmoduler för watchdog-timer.
Konfigurationsfilerna för modprobe(8)-programmet finns i
katalogen "/etc/modprobes.d/", vilket förklaras i
modprobe.conf(5). (Om du vill undvika att vissa
kärnmoduler laddas automatiskt kan du överväga att svartlista dem i filen
"/etc/modprobes.d/blacklist")
Filen
"/lib/modules/version/modules.dep"
som genereras av programmet depmod(8) beskriver
modulberoenden som används av programmet modprobe(8).
|
Notera |
|---|---|
|
Om du har problem med modulinläsningen vid start eller med
|
Programmet modinfo(8) visar information om en modul i
Linux-kärnan.
Programmet lsmod(8) formaterar innehållet i
"/proc/modules" på ett snyggt sätt och visar vilka
kärnmoduler som för närvarande är inlästa.
|
Tips |
|---|---|
|
Du kan identifiera exakt maskinvara i ditt system. Se Avsnitt 9.5.3, ”Identifiering av hårdvara”. Du kan konfigurera maskinvaran vid start för att aktivera förväntade maskinvarufunktioner. Se Avsnitt 9.5.4, ”Konfiguration av hårdvara”. Du kan förmodligen lägga till stöd för din speciella enhet genom att kompilera om kärnan. Se Avsnitt 9.10, ”Kärnan”. |