init(1): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '= Sidslut = Orginalhemsidan på Engelska https://www.man7.org/linux/man-pages/man1/usbreset.1.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på på https://www.linux.se/kontaka-linux-se/ <BR><BR>Tack till [https://Datorhjalp.se Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. Kategori:Linuxmanual grupp 1 Kategori:Linuxmanual') |
Admin (diskussion | bidrag) |
||
| (2 mellanliggande sidversioner av samma användare visas inte) | |||
| Rad 1: | Rad 1: | ||
{{DISPLAYTITLE:init(1)}} | |||
== NAMN == | |||
'''systemd''', '''init''' – systemd system- och tjänstehanterare | |||
== SYNOPSIS == | |||
<pre> | |||
/usr/lib/systemd/systemd [OPTIONS...] | |||
init [OPTIONS...] | |||
</pre> | |||
== BESKRIVNING == | |||
'''systemd''' är en system- och tjänstehanterare för Linux-operativsystem. | |||
När den körs som första process vid uppstart, som PID 1, fungerar den som init-system som startar och underhåller tjänster i användarrymden. | |||
Separata instanser startas för inloggade användare för att starta deras tjänster. | |||
'''systemd''' anropas vanligen inte direkt av användaren, utan installeras som symlänken /sbin/init och startas under tidig uppstart. | |||
Användarhanterarinstanserna startas automatiskt genom tjänsten [[user@.service(5)]]. | |||
När '''systemd''' körs som systeminstans tolkar den konfigurationsfilen system.conf och filerna i katalogerna system.conf.d. | |||
När den körs som användarinstans tolkar den konfigurationsfilen user.conf och filerna i katalogerna user.conf.d. | |||
Se [[systemd-system.conf(5)]] för mer information. | |||
'''systemd''' innehåller inbyggda implementationer av olika uppgifter som behöver utföras som del av uppstartsprocessen. | |||
Exempelvis sätter den värdnamnet eller konfigurerar loopback-nätverksenheten. | |||
Den ställer också in och monterar olika API-filsystem, såsom /sys/, /proc/ och /dev/. | |||
'''systemd''' återställer också systemklockan under tidig uppstart om den verkar vara felaktigt satt. Se avsnittet "Systemklockans epok" nedan. | |||
Observera att vissa, men inte alla, gränssnitt som tillhandahålls av systemd omfattas av '''Interface Portability and Stability Promise'''[1]. | |||
D-Bus-API:t för '''systemd''' beskrivs i [[org.freedesktop.systemd1(5)]] och [[org.freedesktop.LogControl1(5)]]. | |||
System som anropar systemd i en container- eller initrd-miljö bör implementera specifikationerna '''Container Interface'''[2] respektive '''initrd Interface'''[3]. | |||
== UNITS == | |||
systemd tillhandahåller ett beroendesystem mellan olika entiteter kallade "units" av 11 olika typer. | |||
Units kapslar in olika objekt som är relevanta för systemuppstart och underhåll. | |||
Majoriteten av units konfigureras i unit-konfigurationsfiler, vars syntax och grundläggande uppsättning optioner beskrivs i [[systemd.unit(5)]]. Vissa skapas dock automatiskt från andra konfigurationsfiler, dynamiskt från systemtillstånd eller programmatiskt vid körning. | |||
Units kan befinna sig i ett antal tillstånd, beskrivna i följande tabell. Observera att de olika unit-typerna kan ha ett antal ytterligare undertillstånd, som mappas till de generaliserade unit-tillstånden som beskrivs här. | |||
'''Tabell 1. ACTIVE-tillstånd för units''' | |||
{| class="wikitable" | |||
! Tillstånd | |||
! Beskrivning | |||
|- | |||
| ''active'' | |||
| Startad, bunden, inkopplad, ..., beroende på unit-typ. | |||
|- | |||
| ''inactive'' | |||
| Stoppad, obunden, urkopplad, ..., beroende på unit-typ. | |||
|- | |||
| ''failed'' | |||
| Liknar ''inactive'', men unit:en har misslyckats på något sätt, till exempel genom att en process returnerade felkod vid avslut, kraschade, en operation tog timeout eller efter för många omstarter. | |||
|- | |||
| ''activating'' | |||
| Ändras från ''inactive'' till ''active''. | |||
|- | |||
| ''deactivating'' | |||
| Ändras från ''active'' till ''inactive''. | |||
|- | |||
| ''maintenance'' | |||
| Unit:en är ''inactive'' och en underhållsåtgärd pågår. | |||
|- | |||
| ''reloading'' | |||
| Unit:en är ''active'' och laddar om sin konfiguration. | |||
|- | |||
| ''refreshing'' | |||
| Unit:en är ''active'' och en ny montering aktiveras i dess namnrymd. | |||
|} | |||
Följande unit-typer finns: | |||
# Service units, som startar och styr daemoner och processerna de består av. För detaljer, se [[systemd.service(5)]]. | |||
# Socket units, som kapslar in lokala IPC- eller nätverkssockets i systemet, användbara för socket-baserad aktivering. För detaljer om socket units, se [[systemd.socket(5)]]. För detaljer om socket-baserad aktivering och andra former av aktivering, se [[daemon(7)]]. | |||
# Target units är användbara för att gruppera units eller tillhandahålla välkända synkroniseringspunkter under uppstart, se [[systemd.target(5)]]. | |||
# Device units exponerar kärnenheter i systemd och kan användas för att implementera enhetsbaserad aktivering. För detaljer, se [[systemd.device(5)]]. | |||
# Mount units styr monteringspunkter i filsystemet. För detaljer, se [[systemd.mount(5)]]. | |||
# Automount units tillhandahåller automount-funktioner, för behovsstyrd montering av filsystem samt parallelliserad uppstart. Se [[systemd.automount(5)]]. | |||
# Timer units är användbara för att trigga aktivering av andra units baserat på timers. Se [[systemd.timer(5)]]. | |||
# Swap units liknar mount units och kapslar in minnesswap-partitioner eller filer i operativsystemet. De beskrivs i [[systemd.swap(5)]]. | |||
# Path units kan användas för att aktivera andra tjänster när filsystemsobjekt ändras eller modifieras. Se [[systemd.path(5)]]. | |||
# Slice units kan användas för att gruppera units som hanterar systemprocesser, såsom service- och scope units, i ett hierarkiskt träd för resurshantering. Se [[systemd.slice(5)]]. | |||
# Scope units liknar service units, men hanterar främmande processer i stället för att också starta dem. Se [[systemd.scope(5)]]. | |||
Units namnges som sina konfigurationsfiler. Vissa units har särskild semantik. En detaljerad lista finns i [[systemd.special(7)]]. | |||
systemd känner till olika slags beroenden, inklusive positiva och negativa kravberoenden, det vill säga ''Requires='' och ''Conflicts='', samt ordningsberoenden, ''After='' och ''Before=''. | |||
Observera att ordnings- och kravberoenden är ortogonala. Om endast ett kravberoende finns mellan två units, exempelvis att foo.service kräver bar.service, men inget ordningsberoende finns, exempelvis foo.service efter bar.service, och båda begärs startade, startas de parallellt. | |||
Det är ett vanligt mönster att både krav- och ordningsberoenden placeras mellan två units. Observera också att majoriteten av beroenden skapas och underhålls implicit av systemd. I de flesta fall bör det vara onödigt att deklarera ytterligare beroenden manuellt, men det är möjligt. | |||
Program och units, via beroenden, kan begära tillståndsändringar för units. I systemd kapslas dessa begäranden in som "jobs" och underhålls i en jobbkö. Jobs kan lyckas eller misslyckas, och deras körning ordnas baserat på ordningsberoendena för de units som jobben har schemalagts för. | |||
Vid uppstart aktiverar systemd target-unit:en default.target, vars uppgift är att aktivera uppstartstjänster och andra uppstarts-units genom att dra in dem via beroenden. | |||
Vanligen är unit-namnet bara ett alias, en symlink, till antingen graphical.target, för fullständig uppstart till användargränssnitt, eller multi-user.target, för begränsad konsoluppstart avsedd för inbyggda system, servermiljöer eller liknande. Administratören kan dock konfigurera den som alias till vilken annan target-unit som helst. Se [[systemd.special(7)]] för detaljer om dessa target units. | |||
Vid första uppstart aktiverar eller inaktiverar '''systemd''' units enligt preset-policy. Se [[systemd.preset(5)]] och "First Boot Semantics" i [[machine-id(5)]]. | |||
systemd håller endast en minimal uppsättning units laddade i minnet. De enda units som hålls laddade i minnet är de för vilka minst ett av följande villkor är sant: | |||
# Den är i ett active-, activating-, deactivating- eller failed-tillstånd, det vill säga i något unit-tillstånd utom "inactive". | |||
# Den har ett jobb i kö. | |||
# Den är ett beroende till minst en annan unit som är laddad i minnet. | |||
# Den har någon form av resurs fortfarande allokerad, till exempel en service unit som är inactive men där en process fortfarande lever kvar och ignorerade begäran om avslut. | |||
# Den har pinnats i minnet programmatiskt via ett D-Bus-anrop. | |||
systemd laddar automatiskt och implicit units från disk, om de inte redan är laddade, så snart operationer begärs för dem. Därmed är det i många avseenden osynligt för klienter om en unit är laddad eller inte. | |||
Använd: | |||
<pre> | |||
systemctl list-units --all | |||
</pre> | |||
för att heltäckande lista alla units som för närvarande är laddade. | |||
Alla units för vilka inget av villkoren ovan gäller laddas snabbt ur. Observera att när en unit laddas ur från minnet spolas även dess bokföringsdata ut. Dessa data går dock i allmänhet inte förlorade, eftersom en journalpost genereras som deklarerar förbrukade resurser när en unit stängs av. | |||
Processer som systemd skapar placeras i individuella Linux control groups namngivna efter den unit de hör till i den privata systemd-hierarkin. Se '''Control Groups v2'''[4] för mer information om control groups, eller "cgroups". systemd använder detta för att effektivt hålla reda på processer. | |||
Control group-information underhålls i kärnan och är åtkomlig via filsystemshierarkin under /sys/fs/cgroup/, eller i verktyg som [[systemd-cgls(1)]] eller [[ps(1)]]. | |||
Följande kommando är särskilt användbart för att lista alla processer och de systemd-units de hör till: | |||
<pre> | |||
ps xawf -eo pid,user,cgroup,args | |||
</pre> | |||
systemd är kompatibelt med olika etablerade Unix-funktioner såsom /etc/fstab och utmp-databasen. | |||
systemd har ett minimalt transaktionssystem: om en unit begärs startad eller stoppad läggs den och alla dess beroenden till i en temporär transaktion. Därefter verifieras att transaktionen är konsekvent, det vill säga att ordningen för alla units är cykelfri. | |||
Om den inte är konsekvent försöker systemd reparera den och tar bort icke-väsentliga jobb från transaktionen som kan ta bort loopen. systemd försöker också undertrycka icke-väsentliga jobb i transaktionen som skulle stoppa en körande tjänst. | |||
Slutligen kontrolleras om jobben i transaktionen motsäger jobb som redan har köats, och transaktionen avbryts eventuellt. Om allt fungerar och transaktionen är konsekvent och minimerad i sin påverkan slås den samman med alla redan utestående jobb och läggs till i körkön. | |||
Detta innebär i praktiken att systemd innan en begärd operation körs verifierar att den är rimlig, reparerar den om möjligt, och misslyckas endast om den verkligen inte kan fungera. | |||
Observera att transaktioner genereras oberoende av en units tillstånd vid körning. Om exempelvis ett startjobb begärs på en redan startad unit genereras ändå en transaktion och inaktiva beroenden väcks, samt andra jobb propageras enligt de definierade relationerna. Detta beror på att det köade jobbet vid körning jämförs med mål-unitens tillstånd och markeras som lyckat och fullbordat när båda uppfylls. Jobbet drar dock också in andra beroenden enligt de definierade relationerna och leder därmed, i exemplet, till startjobb för sådana inaktiva units. | |||
Units kan genereras dynamiskt vid uppstart och när systemhanteraren laddas om, exempelvis baserat på andra konfigurationsfiler eller parametrar som skickats på kärnans kommandorad. För detaljer, se [[systemd.generator(7)]]. | |||
== KATALOGER == | |||
'''System-unit-kataloger''' | |||
: systemd-systemhanteraren läser unit-konfiguration från olika kataloger. | |||
: Paket som vill installera unit-filer ska placera dem i katalogen som returneras av: | |||
<pre> | |||
pkg-config systemd --variable=systemdsystemunitdir | |||
</pre> | |||
: Andra kataloger som kontrolleras är /usr/local/lib/systemd/system och /usr/lib/systemd/system. | |||
: Användarkonfiguration har alltid företräde. | |||
: Följande returnerar sökvägen till systemkonfigurationskatalogen: | |||
<pre> | |||
pkg-config systemd --variable=systemdsystemconfdir | |||
</pre> | |||
: Paket bör endast ändra innehållet i dessa kataloger med kommandona '''enable''' och '''disable''' i verktyget [[systemctl(1)]]. | |||
: Fullständig lista över kataloger finns i [[systemd.unit(5)]]. | |||
'''User-unit-kataloger''' | |||
: Liknande regler gäller för user-unit-kataloger. | |||
: Här följs dock '''XDG Base Directory specification'''[5] för att hitta units. | |||
: Program bör placera sina unit-filer i katalogen som returneras av: | |||
<pre> | |||
pkg-config systemd --variable=systemduserunitdir | |||
</pre> | |||
: Global konfiguration görs i katalogen som rapporteras av: | |||
<pre> | |||
pkg-config systemd --variable=systemduserconfdir | |||
</pre> | |||
: Kommandona '''enable''' och '''disable''' i verktyget [[systemctl(1)]] kan hantera både global, det vill säga för alla användare, och privat, för en användare, aktivering/inaktivering av units. | |||
: Fullständig lista över kataloger finns i [[systemd.unit(5)]]. | |||
== SIGNALER == | |||
Tjänsten lyssnar på olika UNIX-processignaler som kan användas för att begära olika åtgärder asynkront. | |||
Signalhanteringen aktiveras mycket tidigt under uppstart, innan några ytterligare processer anropas. En övervakande containerhanterare eller liknande som avser att begära dessa operationer via denna mekanism måste dock ta hänsyn till att funktionaliteten inte är tillgänglig under den allra tidigaste initieringsfasen. | |||
Ett [[sd_notify(3)]]-meddelande med fältet ''X_SYSTEMD_SIGNALS_LEVEL=2'' skickas när signalhanterarna är aktiverade, se nedan. Detta kan användas för att schemalägga sändning av dessa signaler korrekt. | |||
'''SIGTERM''' | |||
: När systemd-systemhanteraren tar emot denna signal serialiserar den sitt tillstånd, kör om sig själv och deserialiserar det sparade tillståndet igen. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl daemon-reexec | |||
</pre> | |||
: systemd-användarhanterare startar unit:en exit.target när denna signal tas emot. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl --user start exit.target --job-mode=replace-irreversibly | |||
</pre> | |||
'''SIGINT''' | |||
: När systemd-systemhanteraren tar emot denna signal startar den unit:en ctrl-alt-del.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start ctrl-alt-del.target --job-mode=replace-irreversibly | |||
</pre> | |||
: Om denna signal tas emot fler än 7 gånger per 2 s triggas en omedelbar omstart. | |||
: Observera att Ctrl+Alt+Del på konsolen triggar denna signal. Om en omstart hänger är det därför ett relativt säkert sätt att trigga en omedelbar omstart genom att trycka Ctrl+Alt+Del fler än 7 gånger inom 2 sekunder. | |||
: systemd-användarhanterare behandlar denna signal på samma sätt som '''SIGTERM'''. | |||
'''SIGWINCH''' | |||
: När denna signal tas emot startar systemd-systemhanteraren unit:en kbrequest.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start kbrequest.target | |||
</pre> | |||
: Denna signal ignoreras av systemd-användarhanterare. | |||
'''SIGPWR''' | |||
: När denna signal tas emot startar systemd-hanteraren unit:en sigpwr.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start sigpwr.target | |||
</pre> | |||
'''SIGUSR1''' | |||
: När denna signal tas emot försöker systemd-hanteraren återansluta till D-Bus-bussen. | |||
'''SIGUSR2''' | |||
: När denna signal tas emot loggar systemd-hanteraren sitt fullständiga tillstånd i människoläsbar form. | |||
: Data som loggas är samma som skrivs ut av: | |||
<pre> | |||
systemd-analyze dump | |||
</pre> | |||
'''SIGHUP''' | |||
: Laddar om hela daemonkonfigurationen. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl daemon-reload | |||
</pre> | |||
'''SIGRTMIN+0''' | |||
: Går in i standardläge och startar unit:en default.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl isolate default.target | |||
</pre> | |||
'''SIGRTMIN+1''' | |||
: Går in i rescue-läge och startar unit:en rescue.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl isolate rescue.target | |||
</pre> | |||
'''SIGRTMIN+2''' | |||
: Går in i emergency-läge och startar unit:en emergency.service. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl isolate emergency.service | |||
</pre> | |||
'''SIGRTMIN+3''' | |||
: Stoppar maskinen och startar unit:en halt.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start halt.target --job-mode=replace-irreversibly | |||
</pre> | |||
'''SIGRTMIN+4''' | |||
: Stänger av maskinen och startar unit:en poweroff.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start poweroff.target --job-mode=replace-irreversibly | |||
</pre> | |||
'''SIGRTMIN+5''' | |||
: Startar om maskinen och startar unit:en reboot.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start reboot.target --job-mode=replace-irreversibly | |||
</pre> | |||
'''SIGRTMIN+6''' | |||
: Startar om maskinen via kexec och startar unit:en kexec.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start kexec.target --job-mode=replace-irreversibly | |||
</pre> | |||
'''SIGRTMIN+7''' | |||
: Startar om användarrymden och startar unit:en soft-reboot.target. | |||
: Detta motsvarar i huvudsak: | |||
<pre> | |||
systemctl start soft-reboot.target --job-mode=replace-irreversibly | |||
</pre> | |||
: Tillagt i version 254. | |||
'''SIGRTMIN+13''' | |||
: Stoppar maskinen omedelbart. | |||
'''SIGRTMIN+14''' | |||
: Stänger av maskinen omedelbart. | |||
'''SIGRTMIN+15''' | |||
: Startar om maskinen omedelbart. | |||
'''SIGRTMIN+16''' | |||
: Startar om maskinen omedelbart med kexec. | |||
'''SIGRTMIN+17''' | |||
: Startar om användarrymden omedelbart. | |||
: Tillagt i version 254. | |||
'''SIGRTMIN+20''' | |||
: Aktiverar visning av statusmeddelanden på konsolen, enligt styrning via ''systemd.show_status=1'' på kärnans kommandorad. | |||
: Du kan vilja använda '''SetShowStatus()''' i stället för '''SIGRTMIN+20''' för att förhindra race conditions. Se [[org.freedesktop.systemd1(5)]]. | |||
'''SIGRTMIN+21''' | |||
: Inaktiverar visning av statusmeddelanden på konsolen, enligt styrning via ''systemd.show_status=0'' på kärnans kommandorad. | |||
: Du kan vilja använda '''SetShowStatus()''' i stället för '''SIGRTMIN+21''' för att förhindra race conditions. Se [[org.freedesktop.systemd1(5)]]. | |||
'''SIGRTMIN+22''' | |||
: Sätter servicehanterarens loggnivå till "debug", på ett sätt som motsvarar ''systemd.log_level=debug'' på kärnans kommandorad. | |||
'''SIGRTMIN+23''' | |||
: Återställer loggnivån till dess konfigurerade värde. | |||
: Det konfigurerade värdet härleds, i prioritetsordning, från värdet angivet med ''systemd.log-level='' på kärnans kommandorad, eller värdet angivet med '''LogLevel=''' i konfigurationsfilen, eller den inbyggda standarden "info". | |||
: Tillagt i version 239. | |||
'''SIGRTMIN+24''' | |||
: Avslutar hanteraren omedelbart, endast tillgängligt för --user-instanser. | |||
: Tillagt i version 195. | |||
'''SIGRTMIN+25''' | |||
: När denna signal tas emot kör systemd-hanteraren om sig själv. | |||
: Detta motsvarar i huvudsak '''systemctl daemon-reexec''', förutom att det görs asynkront. | |||
: systemd-systemhanteraren behandlar denna signal på samma sätt som '''SIGTERM'''. | |||
: Tillagt i version 250. | |||
'''SIGRTMIN+26''' | |||
: Återställer loggmålet till dess konfigurerade värde. | |||
: Det konfigurerade värdet härleds, i prioritetsordning, från värdet angivet med ''systemd.log-target='' på kärnans kommandorad, eller värdet angivet med '''LogTarget=''' i konfigurationsfilen, eller den inbyggda standarden. | |||
: Tillagt i version 239. | |||
'''SIGRTMIN+27''', '''SIGRTMIN+28''' | |||
: Sätter loggmålet till "console" vid '''SIGRTMIN+27''', eller "kmsg" vid '''SIGRTMIN+28''', på ett sätt som motsvarar ''systemd.log_target=console'', eller ''systemd.log_target=kmsg'' vid '''SIGRTMIN+28''', på kärnans kommandorad. | |||
: Tillagt i version 239. | |||
== MILJÖ == | |||
Miljöblocket för systemhanteraren sätts initialt av kärnan. Särskilt blir "key=value"-tilldelningar på kärnans kommandorad miljövariabler för PID 1. | |||
För användarhanteraren sätter systemhanteraren miljön enligt beskrivningen i avsnittet "Environment Variables in Spawned Processes" i [[systemd.exec(5)]]. | |||
Inställningen ''DefaultEnvironment='' i systemhanteraren gäller för alla tjänster, inklusive user@.service. Ytterligare poster kan konfigureras, som för alla andra tjänster, genom inställningarna ''Environment='' och ''EnvironmentFile='' för user@.service. Se [[systemd.exec(5)]]. | |||
Ytterligare miljövariabler kan också sättas genom inställningen ''ManagerEnvironment='' i [[systemd-system.conf(5)]] och [[systemd-user.conf(5)]]. | |||
Några av variablerna som förstås av '''systemd''': | |||
'''$SYSTEMD_LOG_LEVEL''' | |||
: Högsta loggnivå för meddelanden som skickas ut. Meddelanden med högre loggnivå, det vill säga mindre viktiga, undertrycks. | |||
: Tar en kommaseparerad lista av värden. Ett värde kan vara ett av, i fallande viktighetsordning, '''emerg''', '''alert''', '''crit''', '''err''', '''warning''', '''notice''', '''info''', '''debug''', eller ett heltal i intervallet 0...7. Se [[syslog(3)]]. | |||
: Varje värde kan valfritt prefixas med ett av '''console''', '''syslog''', '''kmsg''' eller '''journal''' följt av kolon för att sätta högsta loggnivå för det specifika loggmålet, till exempel: | |||
<pre> | |||
SYSTEMD_LOG_LEVEL=debug,console:info | |||
</pre> | |||
: Den globala högsta loggnivån har företräde över alla per-mål-loggnivåer. | |||
: Detta kan åsidosättas med '''--log-level='''. | |||
'''$SYSTEMD_LOG_COLOR''' | |||
: Booleskt värde. Om sant färgas meddelanden som skrivs till tty enligt prioritet. | |||
: Detta kan åsidosättas med '''--log-color='''. | |||
'''$SYSTEMD_LOG_TIME''' | |||
: Booleskt värde. Om sant prefixas konsolloggmeddelanden med en tidsstämpel. | |||
: Detta kan åsidosättas med '''--log-time='''. | |||
: Tillagt i version 246. | |||
'''$SYSTEMD_LOG_LOCATION''' | |||
: Booleskt värde. Om sant prefixas meddelanden med filnamn och radnummer i källkoden där meddelandet kommer från. | |||
: Detta kan åsidosättas med '''--log-location='''. | |||
'''$SYSTEMD_LOG_TID''' | |||
: Booleskt värde. Om sant prefixas meddelanden med aktuellt numeriskt tråd-ID, TID. | |||
: Tillagt i version 247. | |||
'''$SYSTEMD_LOG_TARGET''' | |||
: Destination för loggmeddelanden. | |||
: Ett av '''console''', '''console-prefixed''', '''kmsg''', '''journal''', '''journal-or-kmsg''', '''auto''' eller '''null'''. | |||
: Detta kan åsidosättas med '''--log-target='''. | |||
'''$SYSTEMD_LOG_RATELIMIT_KMSG''' | |||
: Om kmsg ska rate-limitas eller inte. Tar ett booleskt värde. | |||
: Standard är "true". Om inaktiverat rate-limitar systemd inte meddelanden som skrivs till kmsg. | |||
: Tillagt i version 254. | |||
'''$XDG_CONFIG_HOME''', '''$XDG_CONFIG_DIRS''', '''$XDG_DATA_HOME''', '''$XDG_DATA_DIRS''' | |||
: systemd-användarhanteraren använder dessa variabler enligt '''XDG Base Directory specification'''[5] för att hitta sin konfiguration. | |||
'''$SYSTEMD_UNIT_PATH''', '''$SYSTEMD_GENERATOR_PATH''', '''$SYSTEMD_ENVIRONMENT_GENERATOR_PATH''' | |||
: Styr var systemd letar efter unit-filer och generatorer. | |||
: Dessa variabler kan innehålla en lista av sökvägar separerade med kolon, ":". | |||
: Om listan slutar med en tom komponent, "...:", läggs denna lista före den vanliga uppsättningen sökvägar. Annars ersätter den angivna listan den vanliga uppsättningen sökvägar. | |||
'''$SYSTEMD_PAGER''', '''$PAGER''' | |||
: Pager att använda när '''--no-pager''' inte anges. | |||
: '''$SYSTEMD_PAGER''' används om den är satt; annars används '''$PAGER'''. | |||
: Om ingen av dem är satt provas en uppsättning välkända pagerimplementationer i tur och ordning, inklusive [[less(1)]] och [[more(1)]], tills en hittas. | |||
: Att sätta dessa miljövariabler till en tom sträng eller värdet "cat" motsvarar att skicka '''--no-pager'''. | |||
: Observera: om '''$SYSTEMD_PAGERSECURE''' inte är satt kan '''$SYSTEMD_PAGER''' och '''$PAGER''' endast användas för att inaktivera pagern, med "cat" eller "", och ignoreras annars. | |||
'''$SYSTEMD_LESS''' | |||
: Åsidosätt optionerna som skickas till '''less''', standard "FRSXMK". | |||
: Användare kan särskilt vilja ändra optionerna '''K''' och '''X'''. | |||
: '''K''' instruerar pagern att avsluta omedelbart när Ctrl+C trycks. För att låta '''less''' själv hantera Ctrl+C och växla tillbaka till pager-kommandoprompten, ta bort denna option. | |||
: Om värdet på '''$SYSTEMD_LESS''' inte innehåller "K", och pagern som anropas är '''less''', ignoreras Ctrl+C av det körbara programmet och behöver hanteras av pagern. | |||
: '''X''' instruerar pagern att inte skicka termcap-initierings- och avslutningssträngar till terminalen. Den är satt som standard för att låta kommandoutdata förbli synlig i terminalen även efter att pagern avslutats. Detta hindrar dock viss pagerfunktionalitet från att fungera, särskilt kan sidindelad utdata inte rullas med musen. | |||
: Den vanliga miljövariabeln '''$LESS''' påverkar inte '''less'''-anrop från systemd-verktyg. | |||
: Se [[less(1)]] för mer diskussion. | |||
'''$SYSTEMD_LESSCHARSET''' | |||
: Åsidosätt teckenuppsättningen som skickas till '''less''', standard "utf-8" om den anropande terminalen bedöms vara UTF-8-kompatibel. | |||
: Den vanliga miljövariabeln '''$LESSCHARSET''' påverkar inte '''less'''-anrop från systemd-verktyg. | |||
'''$SYSTEMD_PAGERSECURE''' | |||
: Vanliga pagerkommandon som [[less(1)]] stöder, utöver sidvisning, även öppning av eller skrivning till andra filer och körning av godtyckliga skalkommandon. | |||
: När kommandon körs med höjda privilegier, exempelvis under [[sudo(8)]] eller [[pkexec(1)]], blir pagern en säkerhetsgräns. | |||
: Försiktighet måste iakttas så att endast program med strikt begränsad funktionalitet används som pagers och att oavsiktliga interaktiva funktioner som öppning eller skapande av nya filer eller start av underprocesser inte tillåts. | |||
: "Secure mode" för pagern kan aktiveras enligt beskrivningen, om pagern stöder detta. | |||
: Varianten tar ett booleskt argument. När den sätts till true aktiveras pagerns "secure mode". I "secure mode" sätts '''LESSSECURE=1''' när pagern anropas. | |||
: När den sätts till false läggs ingen begränsning på pagern. Att sätta '''SYSTEMD_PAGERSECURE=0''' eller inte ta bort den från ärvd miljö kan låta användaren anropa godtyckliga kommandon. | |||
: När '''$SYSTEMD_PAGERSECURE''' inte är satt försöker systemd-verktyg automatiskt avgöra om "secure mode" ska aktiveras och om pagern stöder det. | |||
'''$SYSTEMD_COLORS''' | |||
: Tar ett booleskt argument eller ett specialvärde. | |||
: Som standard använder systemd och relaterade verktyg färger i utdata om möjligt. Om '''$COLORTERM''' är satt till "truecolor" eller "24bit" aktiveras 24-bitars färger, annars 256 färger, såvida inte '''$NO_COLOR''' eller '''$TERM''' anger att färger är inaktiverade. | |||
: Värdena '''true''', '''false''', "16", "256", "24bit", "auto-16", "auto-256" och "auto-24bit" förstås. | |||
'''$SYSTEMD_URLIFY''' | |||
: Värdet måste vara booleskt. Styr om klickbara länkar ska genereras i utdata för terminalemulatorer som stöder detta. | |||
'''$LISTEN_PID''', '''$LISTEN_PIDFDID''', '''$LISTEN_FDS''', '''$LISTEN_FDNAMES''' | |||
: Sätts av systemd för övervakade processer under socket-baserad aktivering. Se [[sd_listen_fds(3)]]. | |||
'''$NOTIFY_SOCKET''' | |||
: Sätts av servicehanteraren för dess tjänster för status- och readiness-notifieringar. | |||
: Konsumeras också av servicehanteraren för att notifiera övervakande containerhanterare eller servicehanterare högre upp i stacken om dess egen progression. | |||
: Se [[sd_notify(3)]] och relevant avsnitt nedan för mer information. | |||
För ytterligare miljövariabler som förstås av systemd och dess olika komponenter, se '''Known Environment Variables'''[7]. | |||
== KÄRNANS KOMMANDORAD == | |||
När systemd körs som systeminstans tolkar den ett antal optioner som listas nedan. | |||
De kan anges som argument på kärnans kommandorad, vilka tolkas från ett antal källor beroende på miljön där systemd körs. | |||
Om systemd körs inne i en Linux-container tolkas dessa optioner från kommandoradsargumenten som skickas till systemd själv, bredvid någon av kommandoradsoptionerna som listas i avsnittet Optioner nedan. | |||
Om systemd körs utanför Linux-containrar tolkas dessa argument i stället från /proc/cmdline. | |||
Följande variabler förstås: | |||
'''systemd.unit=''', '''rd.systemd.unit=''' | |||
: Åsidosätter unit:en att aktivera vid uppstart. | |||
: Standard är default.target. | |||
: Detta kan användas för att temporärt starta till en annan uppstarts-unit, exempelvis rescue.target eller emergency.service. | |||
: Varianten med prefixet "rd." hedras endast i initrd, medan den utan prefix endast hedras i huvudsystemet. | |||
'''systemd.dump_core''' | |||
: Tar ett booleskt argument eller aktiverar optionen om den anges utan argument. | |||
: Om aktiverad dumpar systemd-hanteraren, PID 1, core när den kraschar. Annars skapas ingen core dump. | |||
: Standard är aktiverad. | |||
: Tillagt i version 233. | |||
'''systemd.crash_chvt''' | |||
: Tar ett positivt heltal eller ett booleskt argument. Kan också anges utan argument, med samma effekt som ett positivt booleskt värde. | |||
: Om ett positivt heltal i intervallet 1–63 anges aktiverar systemhanteraren, PID 1, den angivna virtuella terminalen när den kraschar. | |||
: Standard är inaktiverat, vilket betyder att inget sådant byte försöks. Om satt till aktiverat används den virtuella terminal som kärnmeddelandena skrivs till. | |||
: Tillagt i version 233. | |||
'''systemd.crash_shell''' | |||
: Tar ett booleskt argument eller aktiverar optionen om den anges utan argument. | |||
: Om aktiverad skapar systemhanteraren, PID 1, ett skal när den kraschar. Annars skapas inget skal. | |||
: Standard är inaktiverat av säkerhetsskäl, eftersom skalet inte skyddas av lösenordsautentisering. | |||
: Tillagt i version 233. | |||
'''systemd.crash_action=''' | |||
: Tar ett av "freeze", "reboot" eller "poweroff". | |||
: Standard är "freeze". | |||
: Om satt till "freeze" hänger systemet obegränsat när systemhanteraren, PID 1, kraschar. | |||
: Om satt till "reboot" startar systemhanteraren om maskinen automatiskt när den kraschar, efter 10 s fördröjning. | |||
: Om satt till "poweroff" stänger systemhanteraren omedelbart av maskinen när den kraschar. | |||
: Om detta kombineras med systemd.crash_shell körs den konfigurerade kraschåtgärden efter att skalet avslutas. | |||
: Tillagt i version 256. | |||
'''systemd.confirm_spawn''' | |||
: Tar ett booleskt argument eller en sökväg till den virtuella konsol där bekräftelsemeddelanden ska skrivas. | |||
: Kan också anges utan argument, med samma effekt som ett positivt booleskt värde. | |||
: Om aktiverad frågar systemhanteraren, PID 1, efter bekräftelse när processer skapas via /dev/console. | |||
: Om en sökväg eller ett konsolnamn, såsom "ttyS0", anges används den virtuella konsol som pekas ut av sökvägen eller beskrivs av namnet. | |||
: Standard är inaktiverat. | |||
: Tillagt i version 233. | |||
'''systemd.service_watchdogs=''' | |||
: Tar ett booleskt argument. | |||
: Om inaktiverad ignoreras alla service-runtime-watchdogs, ''WatchdogSec='', och nödfallsåtgärder, exempelvis ''OnFailure='' eller ''StartLimitAction='', av systemhanteraren, PID 1. | |||
: Se [[systemd.service(5)]]. | |||
: Standard är aktiverad, det vill säga watchdogs och felåtgärder behandlas normalt. | |||
: Hårdvaru-watchdogen påverkas inte av denna option. | |||
: Tillagt i version 237. | |||
'''systemd.show_status''' | |||
: Tar ett booleskt argument eller konstanterna '''error''' och '''auto'''. | |||
: Kan också anges utan argument, med samma effekt som ett positivt booleskt värde. | |||
: Om aktiverad visar systemd-hanteraren, PID 1, korta tjänstestatusuppdateringar på konsolen under uppstart. | |||
: Med '''error''' visas endast meddelanden om fel, medan uppstarten i övrigt är tyst. | |||
: '''auto''' beter sig som false tills det finns en betydande fördröjning i uppstarten. | |||
: Standard är aktiverad, såvida inte '''quiet''' skickas som kärnkommandoradsoption; i så fall är standard '''error'''. | |||
: Om angiven åsidosätter den systemhanterarens konfigurationsfilsoption '''ShowStatus='''. Se [[systemd-system.conf(5)]]. | |||
: Tillagt i version 233. | |||
'''systemd.status_unit_format=''' | |||
: Tar '''name''', '''description''' eller '''combined''' som värde. | |||
: Om '''name''' används använder systemhanteraren unit-namn i statusmeddelanden. | |||
: Om '''combined''' används använder systemhanteraren unit-namn och beskrivning i statusmeddelanden. | |||
: När angiven åsidosätter den systemhanterarens konfigurationsfilsoption '''StatusUnitFormat='''. Se [[systemd-system.conf(5)]]. | |||
: Tillagt i version 243. | |||
'''systemd.log_color''', '''systemd.log_level=''', '''systemd.log_location''', '''systemd.log_target=''', '''systemd.log_time''', '''systemd.log_tid''', '''systemd.log_ratelimit_kmsg''' | |||
: Styr loggutdata med samma effekt som miljövariablerna '''$SYSTEMD_LOG_COLOR''', '''$SYSTEMD_LOG_LEVEL''', '''$SYSTEMD_LOG_LOCATION''', '''$SYSTEMD_LOG_TARGET''', '''$SYSTEMD_LOG_TIME''', '''$SYSTEMD_LOG_TID''' och '''$SYSTEMD_LOG_RATELIMIT_KMSG''' som beskrivs ovan. | |||
: systemd.log_color, systemd.log_location, systemd.log_time, systemd.log_tid och systemd.log_ratelimit_kmsg kan anges utan argument, med samma effekt som ett positivt booleskt värde. | |||
'''systemd.default_standard_output=''', '''systemd.default_standard_error=''' | |||
: Styr standardvärdet för standardutdata och felutdata för tjänster och sockets. | |||
: Det vill säga standarden för '''StandardOutput=''' och '''StandardError='''. Se [[systemd.exec(5)]]. | |||
: Tar ett av '''inherit''', '''null''', '''tty''', '''journal''', '''journal+console''', '''kmsg''' eller '''kmsg+console'''. | |||
: Om argumentet utelämnas blir systemd.default-standard-output= som standard '''journal''' och systemd.default-standard-error= som standard '''inherit'''. | |||
'''systemd.setenv=''' | |||
: Tar ett strängargument i formen VARIABLE=VALUE. | |||
: Kan användas för att sätta standardmiljövariabler att lägga till i forkade barnprocesser. | |||
: Kan användas mer än en gång för att sätta flera variabler. | |||
'''systemd.machine_id=''' | |||
: Tar ett 32 tecken långt hexvärde att använda för att sätta machine-id. | |||
: Avsett främst för nätverksuppstart där samma machine-id önskas för varje uppstart. | |||
: Tillagt i version 229. | |||
'''systemd.set_credential=''', '''systemd.set_credential_binary=''' | |||
: Sätter en system-credential, som sedan kan propageras till systemtjänster med inställningen '''ImportCredential=''' eller '''LoadCredential='''. Se [[systemd.exec(5)]]. | |||
: Tar ett par av credential-namn och värde, separerat med kolon. | |||
: Parametern systemd.set_credential= förväntar sig credential-värdet i bokstavlig textform. | |||
: Parametern systemd.set_credential_binary= tar binärdata kodad i Base64. | |||
: Observera att kärnans kommandorad normalt är åtkomlig för oprivilegierade program i /proc/cmdline. Därför är denna mekanism inte lämplig för överföring av känsliga data. | |||
: Använd den endast för data som inte är känsliga, exempelvis publika nycklar/certifikat snarare än privata nycklar, eller i test-/felsökningsmiljöer. | |||
: För mer information, se dokumentationen '''System and Service Credentials'''[8]. | |||
: Tillagt i version 251. | |||
'''systemd.import_credentials=''' | |||
: Tar ett booleskt argument. | |||
: Om false inaktiveras import av credentials från kärnans kommandorad, DMI/SMBIOS OEM string-tabellen, qemu_fw_cfg-subsystemet eller EFI-kärnstubben. | |||
: Tillagt i version 251. | |||
'''quiet''' | |||
: Stänger av statusutdata vid uppstart, ungefär som systemd.show_status=no skulle göra. | |||
: Observera att denna option också läses av kärnan själv och inaktiverar kärnloggutdata. Att skicka denna option stänger därför av vanlig utdata från både systemhanteraren och kärnan. | |||
: Tillagt i version 186. | |||
'''debug''' | |||
: Aktiverar felsökningsutdata. | |||
: Detta motsvarar systemd.log_level=debug. | |||
: Observera att denna option också läses av kärnan själv och aktiverar kärnans felsökningsutdata. Att skicka denna option aktiverar därför felsökningsutdata från både systemhanteraren och kärnan. | |||
: Tillagt i version 205. | |||
'''emergency''', '''rd.emergency''' | |||
: Starta i emergency-läge. | |||
: Dessa optioner motsvarar systemd.unit=emergency.target respektive rd.systemd.unit=emergency.target. | |||
: De tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar. | |||
: Tillagt i version 186. | |||
'''rescue''', '''rd.rescue''', '''single''', '''1''' | |||
: Starta i rescue-läge. | |||
: Dessa optioner motsvarar antingen systemd.unit=rescue.target eller rd.systemd.unit=rescue.target. | |||
: De tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar. | |||
: Tillagt i version 186. | |||
'''3''', '''5''' | |||
: Genvägar för att starta till specifika targets. | |||
: '''3''' motsvarar systemd.unit=multi-user.target och '''5''' motsvarar systemd.unit=graphical.target. | |||
: Dessa optioner tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar. | |||
: Tillagt i version 186. | |||
'''locale.LANG=''', '''locale.LANGUAGE=''', '''locale.LC_CTYPE=''', '''locale.LC_NUMERIC=''', '''locale.LC_TIME=''', '''locale.LC_COLLATE=''', '''locale.LC_MONETARY=''', '''locale.LC_MESSAGES=''', '''locale.LC_PAPER=''', '''locale.LC_NAME=''', '''locale.LC_ADDRESS=''', '''locale.LC_TELEPHONE=''', '''locale.LC_MEASUREMENT=''', '''locale.LC_IDENTIFICATION=''' | |||
: Sätt systemlokalen som ska användas. | |||
: Detta åsidosätter inställningarna i /etc/locale.conf. | |||
: För mer information, se [[locale.conf(5)]] och [[locale(7)]]. | |||
: Tillagt i version 186. | |||
'''systemd.minimum_uptime_sec=''' | |||
: Tar en tid i sekunder. | |||
: Anger minsta upptid för systemet innan systemet stängs av. | |||
: För mer information, se inställningen '''MinimumUptimeSec=''' i [[systemd-system.conf(5)]]. | |||
: Tillagt i version 261. | |||
För andra kärnkommandoradsparametrar som förstås av komponenter i kärn-OS:et, se [[kernel-command-line(7)]]. | |||
== SYSTEM-CREDENTIALS == | |||
Under initiering importerar servicehanteraren credentials från olika källor till systemets uppsättning credentials, som sedan kan propageras till tjänster och konsumeras av generatorer: | |||
* När servicehanteraren först initieras läser den system-credentials från SMBIOS Type 11 vendor strings: io.systemd.credential:name=value och io.systemd.credential.binary:name=value. | |||
* Samtidigt importerar den credentials från QEMU "fw_cfg". Observera att SMBIOS-mekanismen i allmänhet föredras eftersom den är snabbare och generisk. | |||
* Credentials kan skickas via kärnans kommandorad med parametern systemd.set-credential=, se ovan. | |||
* Credentials kan skickas från UEFI-miljön via [[systemd-stub(7)]]. | |||
* När servicehanteraren anropas under övergången initrd → host importerar den alla filer i /run/credentials/@initrd/ som system-credentials. | |||
Anropa [[systemd-creds(1)]] enligt följande för att se listan över credentials som skickats in i systemet: | |||
<pre> | |||
# systemd-creds --system list | |||
</pre> | |||
För ytterligare information, se dokumentationen '''System and Service Credentials'''[8]. | |||
Servicehanteraren konsumerar följande system-credentials när den körs som PID 1: | |||
'''vmm.notify_socket''' | |||
: Innehåller en AF_VSOCK- eller AF_UNIX-adress dit ett READY=1-notifieringsmeddelande ska skickas när servicehanteraren har slutfört uppstarten. | |||
: Se [[sd_notify(3)]] och nästa avsnitt för mer information. | |||
: Om hypervisorn inte stöder SOCK_DGRAM över AF_VSOCK provas SOCK_SEQPACKET i stället. | |||
: Credential-payload för AF_VSOCK ska vara en sträng i formen "vsock:CID:PORT". | |||
: "vsock-stream", "vsock-dgram" och "vsock-seqpacket" kan användas i stället för "vsock" för att tvinga användning av motsvarande sockettyp. | |||
: Funktionen är användbar för maskinhanterare eller andra processer på värden som vill ta emot en notifiering via VSOCK när en virtuell maskin har startat färdigt. | |||
: Tillagt i version 254. | |||
'''system.machine_id''' | |||
: Tar ett 128-bitars hexadecimalt ID för att initiera /etc/machine-id från, om filen ännu inte är uppsatt. | |||
: Se [[machine-id(5)]] för detaljer. | |||
: Tillagt i version 254. | |||
För en lista över system-credentials som olika andra komponenter i systemd konsumerar, se [[systemd.system-credentials(7)]]. | |||
== READINESS-PROTOKOLL == | |||
Servicehanteraren implementerar ett readiness-notifieringsprotokoll både mellan hanteraren och dess tjänster, det vill säga nedåt i stacken, och mellan hanteraren och en möjlig övervakare längre upp i stacken. | |||
Den senare kan vara en maskin- eller containerhanterare, eller, i fallet med en per-användare-servicehanterare, systemservicehanterarinstansen. | |||
Grundprotokollet, och det föreslagna API:t för det, beskrivs i [[sd_notify(3)]]. | |||
Notifieringssocketen som servicehanteraren, inklusive PID 1, använder för att rapportera readiness till sin egen övervakare sätts via den vanliga miljövariabeln '''$NOTIFY_SOCKET''', se ovan. | |||
Eftersom detta bara direkt kan sättas för containerhanterare och för per-användarinstansen av servicehanteraren finns en ytterligare mekanism för att konfigurera detta, särskilt avsedd för VM-miljöer: system-credentialen vmm.notify_socket, se ovan, kan sättas till en lämplig socket, typiskt en AF_VSOCK, via SMBIOS Type 11 vendor strings. | |||
Notifieringsprotokollet från servicehanteraren uppåt i stacken mot en övervakare stöder ett antal utökningsfält som låter en övervakare få veta specifika egenskaper hos systemet och följa dess uppstartsframsteg. | |||
Följande fält skickas: | |||
* Ett X_SYSTEMD_HOSTNAME=...-meddelande skickas när systemets initiala hostname har bestämts. Observera att hostname senare under körning kan ändras programmatiskt, och för närvarande skickas inga ytterligare notifieringar i detta fall. Tillagt i version 256. | |||
* Ett X_SYSTEMD_MACHINE_ID=...-meddelande skickas när systemets machine ID har bestämts. Se [[machine-id(5)]]. Tillagt i version 256. | |||
* Ett X_SYSTEMD_SIGNALS_LEVEL=...-meddelande skickas när servicehanteraren installerat de olika UNIX-processignalhanterarna som beskrivs ovan. Fältets värde är ett osignerat heltal formaterat som decimal sträng och anger den stödda UNIX-processignal-funktionsnivån hos servicehanteraren. | |||
* X_SYSTEMD_SIGNALS_LEVEL=2 täcker de olika UNIX-processignalerna som dokumenteras ovan, vilka är en övermängd av dem som stöds av det historiska SysV init-systemet. | |||
* X_SYSTEMD_UNIT_ACTIVE=...- och X_SYSTEMD_UNIT_INACTIVE=...-meddelanden skickas för varje target-unit när den blir aktiv eller slutar vara aktiv. Detta är användbart för att följa uppstartsframsteg och funktionalitet. Till exempel är SSH-åtkomst typiskt tillgänglig när ssh-access.target rapporteras startad. Se [[systemd.special(7)]]. Tillagt i version 256. | |||
* Ett X_SYSTEMD_SHUTDOWN=...-meddelande skickas mycket kort innan systemet stängs av. Värdet är en av strängarna "reboot", "halt", "poweroff", "kexec" och anger vilken slags nedstängning som körs. Tillagt i version 256. | |||
* Ett X_SYSTEMD_REBOOT_PARAMETER=...-meddelande skickas också mycket kort innan systemet stängs av. Dess värde är reboot-argumentet som konfigurerats med systemctl --reboot-argument=.... Tillagt i version 256. | |||
Signaler som skickas till PID 1 innan X_SYSTEMD_SIGNALS_LEVEL=...-meddelandet skickas kanske ännu inte hanteras korrekt. | |||
En konsument av dessa meddelanden bör tolka värdet som ett osignerat heltal som anger stödnivån. För närvarande är endast nivå 2 definierad, men senare kan ytterligare nivåer definieras med högre heltal, som implementerar en övermängd av det för närvarande definierade beteendet. | |||
Observera att dessa utökningsfält skickas utöver de vanliga notifieringarna "READY=1" och "RELOADING=1". | |||
== OPTIONER == | |||
systemd anropas endast mycket sällan direkt, eftersom den startas tidigt och redan kör när användare kan interagera med den. | |||
Normalt används verktyg som [[systemctl(1)]] för att ge kommandon till hanteraren. | |||
Eftersom systemd vanligtvis inte anropas direkt är optionerna nedan mest användbara för felsökning och särskilda syften. | |||
=== Introspektions- och felsökningsoptioner === | |||
Dessa optioner används för testning och introspektion, och systemd kan anropas med dem när som helst: | |||
'''--dump-configuration-items''' | |||
: Dumpa förstådda unit-konfigurationsposter. | |||
: Detta skriver ut en kortfattad men komplett lista över konfigurationsposter som förstås i unit-definitionsfiler. | |||
'''--dump-bus-properties''' | |||
: Dumpa exponerade bus-egenskaper. | |||
: Detta skriver ut en kortfattad men komplett lista över egenskaper som exponeras på D-Bus. | |||
: Tillagt i version 239. | |||
'''--test''' | |||
: Bestäm den initiala uppstartstransaktionen, det vill säga listan över jobb som köas vid uppstart, dumpa den och avsluta utan att faktiskt köra några av de bestämda jobben. | |||
: Denna option är endast användbar för felsökning. | |||
: Observera att under vanlig start av servicehanteraren kan ytterligare units som inte visas av denna operation startas, eftersom hårdvaru-, socket-, bus- eller andra typer av aktivering kan lägga till ytterligare jobb när transaktionen körs. | |||
: Använd '''--system''' för att begära den initiala transaktionen för systemservicehanteraren, vilket också är underförstådd standard, och kombinera med '''--user''' för att i stället begära den initiala transaktionen för per-användare-servicehanteraren. | |||
'''--system''', '''--user''' | |||
: När de används tillsammans med '''--test''' väljer de om den initiala transaktionen ska beräknas för systeminstansen eller för en per-användarinstans. | |||
: Dessa optioner har ingen effekt när de anropas utan '''--test''', eftersom servicehanteraren vid vanliga anrop automatiskt upptäcker om den ska arbeta i system- eller per-användarläge genom att kontrollera om PID den körs som är 1 eller inte. | |||
: Observera att det inte stöds att starta och underhålla ett system med servicehanteraren körande i '''--system'''-läge men med ett annat PID än 1. | |||
'''-h''', '''--help''' | |||
: Skriv ut en kort hjälptext och avsluta. | |||
'''--version''' | |||
: Skriv ut en kort versionssträng och avsluta. | |||
=== Optioner som duplicerar kärnans kommandoradsinställningar === | |||
Dessa optioner motsvarar direkt optioner som listas ovan i "Kärnans kommandorad". | |||
Båda formerna kan användas ekvivalent för systemhanteraren, men det rekommenderas att använda formerna listade ovan i detta sammanhang eftersom de är korrekt namnrymdade. | |||
När en option anges både på kärnans kommandorad och som normalt kommandoradsargument har den senare högre prioritet. | |||
När systemd används som användarhanterare ignoreras kärnans kommandorad och endast optionerna nedan förstås. | |||
systemd startas dock vanligen i detta läge via tjänsten [[user@.service(5)]], som delas mellan alla användare. Det kan vara bekvämare att använda konfigurationsfiler för att ändra inställningar, se [[systemd-user.conf(5)]], eller miljövariabler. Se avsnittet "Miljö" ovan. | |||
'''--unit=''' | |||
: Sätt standard-unit att aktivera vid start. | |||
: Om den inte anges är standard default.target. | |||
: Se systemd.unit= ovan. | |||
'''--dump-core''' | |||
: Aktivera core dump vid krasch. | |||
: Denna växel har ingen effekt när den körs som användarinstans. | |||
: Samma som systemd.dump_core= ovan. | |||
'''--crash-vt=VT''' | |||
: Byt till en specifik virtuell konsol, VT, vid krasch. | |||
: Denna växel har ingen effekt när den körs som användarinstans. | |||
: Samma som systemd.crash_chvt= ovan, men observera den olika stavningen. | |||
: Tillagt i version 227. | |||
'''--crash-shell''' | |||
: Kör ett skal vid krasch. | |||
: Denna växel har ingen effekt när den körs som användarinstans. | |||
: Se systemd.crash_shell= ovan. | |||
'''--crash-action=''' | |||
: Ange vad som ska göras när systemhanteraren, PID 1, kraschar. | |||
: Denna växel har ingen effekt när systemd körs som användarinstans. | |||
: Se systemd.crash_action= ovan. | |||
: Tillagt i version 256. | |||
'''--confirm-spawn''' | |||
: Fråga efter bekräftelse när processer skapas. | |||
: Denna växel har ingen effekt när den körs som användarinstans. | |||
: Se systemd.confirm_spawn ovan. | |||
'''--show-status''' | |||
: Visa kortfattad unit-statusinformation på konsolen under uppstart och nedstängning. | |||
: Se systemd.show_status ovan. | |||
: Tillagt i version 244. | |||
'''--log-color''' | |||
: Markera viktiga loggmeddelanden. | |||
: Se systemd.log_color ovan. | |||
: Tillagt i version 244. | |||
'''--log-level=''' | |||
: Sätt loggnivå. | |||
: Se systemd.log_level ovan. | |||
'''--log-location''' | |||
: Inkludera kodplats i loggmeddelanden. | |||
: Se systemd.log_location ovan. | |||
: Tillagt i version 244. | |||
'''--log-target=''' | |||
: Sätt loggmål. | |||
: Se systemd.log_target ovan. | |||
'''--log-time=''' | |||
: Prefixa konsolmeddelanden med tidsstämpel. | |||
: Se systemd.log_time ovan. | |||
: Tillagt i version 246. | |||
'''--machine-id=''' | |||
: Åsidosätt machine-id som satts på hårddisken. | |||
: Se systemd.machine_id= ovan. | |||
: Tillagt i version 229. | |||
'''--service-watchdogs''' | |||
: Aktivera/inaktivera globalt alla service-watchdog-timeouter och nödfallsåtgärder. | |||
: Se systemd.service_watchdogs ovan. | |||
: Tillagt i version 237. | |||
'''--default-standard-output=''', '''--default-standard-error=''' | |||
: Sätter standardutdata respektive felutdata för alla tjänster och sockets. | |||
: Se systemd.default_standard_output= och systemd.default_standard_error= ovan. | |||
== SYSTEMKLOCKANS EPOK == | |||
När systemd startas eller startas om kan den sätta systemklockan till "epoken". | |||
Denna mekanism används för att säkerställa att systemklockan förblir någorlunda rimligt initierad och grovt monoton över omstarter, om ingen batteristödd lokal RTC finns tillgänglig eller om den inte fungerar korrekt. | |||
Epoken är det lägsta datum ovanför vilket systemklockans tid antas vara korrekt satt. | |||
Vid initiering flyttas den lokala klockan fram till epoken om den var satt till ett lägre värde. | |||
Som specialfall antas hårdvaruklockan vara trasig om den lokala klockan är tillräckligt långt i framtiden, som standard 15 år men detta kan konfigureras vid byggtid, och systemklockan vrids då tillbaka till epoken. | |||
Epoken sätts till det högsta av: byggtiden för systemd, modifieringstiden, "mtime", för /usr/lib/clock-epoch, och modifieringstiden för /var/lib/systemd/timesync/clock. | |||
== FILER == | |||
'''/run/systemd/notify''' | |||
: Socket för daemonstatusnotifiering. | |||
: Detta är en AF_UNIX datagramsocket och används för att implementera daemon-notifieringslogiken enligt [[sd_notify(3)]]. | |||
'''/run/systemd/private''' | |||
: Används internt som kommunikationskanal mellan [[systemctl(1)]] och systemd-processen. | |||
: Detta är en AF_UNIX stream socket. | |||
: Gränssnittet är privat för systemd och ska inte användas i externa projekt. | |||
'''/usr/lib/clock-epoch''' | |||
: Modifieringstiden, "mtime", för denna fil används för tidsepoken, se föregående avsnitt. | |||
: Tillagt i version 247. | |||
'''/var/lib/systemd/timesync/clock''' | |||
: Modifieringstiden, "mtime", för denna fil uppdateras av [[systemd-timesyncd.service(8)]]. | |||
: Om filen finns används dess modifieringstid för epoken, se föregående avsnitt. | |||
: Tillagt i version 257. | |||
== HISTORIK == | |||
'''systemd 252''' | |||
: Kärnkommandoradsargumenten systemd.unified_cgroup_hierarchy och systemd.legacy_systemd_cgroup_controller blev föråldrade. | |||
: Byt till unified cgroup hierarchy. | |||
== SE ÄVEN == | |||
'''The systemd Homepage'''[9], [[systemd-system.conf(5)]], [[locale.conf(5)]], [[systemctl(1)]], [[journalctl(1)]], [[systemd-notify(1)]], [[daemon(7)]], [[sd-daemon(3)]], [[org.freedesktop.systemd1(5)]], [[systemd.unit(5)]], [[systemd.special(7)]], [[pkg-config(1)]], [[kernel-command-line(7)]], [[bootup(7)]], [[systemd.directives(7)]], [[org.freedesktop.systemd1(5)]] | |||
För mer information om koncepten och idéerna bakom systemd, se '''Original Design Document'''[10]. | |||
== ANMÄRKNINGAR == | |||
1. '''Interface Portability and Stability Promise''' | |||
https://systemd.io/PORTABILITY_AND_STABILITY/ | |||
2. '''Container Interface''' | |||
https://systemd.io/CONTAINER_INTERFACE | |||
3. '''initrd Interface''' | |||
https://systemd.io/INITRD_INTERFACE/ | |||
4. '''Control Groups v2''' | |||
https://docs.kernel.org/admin-guide/cgroup-v2.html | |||
5. '''XDG Base Directory specification''' | |||
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html | |||
6. Det rekommenderas att andra verktyg sätter och kontrollerar '''$SUDO_UID''' efter behov, och behandlar det som ett gemensamt gränssnitt. | |||
7. '''Known Environment Variables''' | |||
https://systemd.io/ENVIRONMENT | |||
8. '''System and Service Credentials''' | |||
https://systemd.io/CREDENTIALS | |||
9. '''systemd Homepage''' | |||
https://systemd.io/ | |||
10. '''Original Design Document''' | |||
https://0pointer.de/blog/projects/systemd.html | |||
systemd 261.2 | |||
= Sidslut = | = Sidslut = | ||
Orginalhemsidan på Engelska https:// | Orginalhemsidan på Engelska https://man.archlinux.org/man/init.1.en | ||
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på på https://www.linux.se/kontaka-linux-se/ | Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på på https://www.linux.se/kontaka-linux-se/ | ||
<BR><BR>Tack till [https://Datorhjalp.se Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. | <BR><BR>Tack till [https://Datorhjalp.se Datorservice] som har sponsrat [https://www.linux.se Linux.se] med webbhotell. | ||
Nuvarande version från 25 augusti 2026 kl. 13.29
NAMN
systemd, init – systemd system- och tjänstehanterare
SYNOPSIS
/usr/lib/systemd/systemd [OPTIONS...] init [OPTIONS...]
BESKRIVNING
systemd är en system- och tjänstehanterare för Linux-operativsystem.
När den körs som första process vid uppstart, som PID 1, fungerar den som init-system som startar och underhåller tjänster i användarrymden.
Separata instanser startas för inloggade användare för att starta deras tjänster.
systemd anropas vanligen inte direkt av användaren, utan installeras som symlänken /sbin/init och startas under tidig uppstart.
Användarhanterarinstanserna startas automatiskt genom tjänsten user@.service(5).
När systemd körs som systeminstans tolkar den konfigurationsfilen system.conf och filerna i katalogerna system.conf.d.
När den körs som användarinstans tolkar den konfigurationsfilen user.conf och filerna i katalogerna user.conf.d.
Se systemd-system.conf(5) för mer information.
systemd innehåller inbyggda implementationer av olika uppgifter som behöver utföras som del av uppstartsprocessen.
Exempelvis sätter den värdnamnet eller konfigurerar loopback-nätverksenheten.
Den ställer också in och monterar olika API-filsystem, såsom /sys/, /proc/ och /dev/.
systemd återställer också systemklockan under tidig uppstart om den verkar vara felaktigt satt. Se avsnittet "Systemklockans epok" nedan.
Observera att vissa, men inte alla, gränssnitt som tillhandahålls av systemd omfattas av Interface Portability and Stability Promise[1].
D-Bus-API:t för systemd beskrivs i org.freedesktop.systemd1(5) och org.freedesktop.LogControl1(5).
System som anropar systemd i en container- eller initrd-miljö bör implementera specifikationerna Container Interface[2] respektive initrd Interface[3].
UNITS
systemd tillhandahåller ett beroendesystem mellan olika entiteter kallade "units" av 11 olika typer.
Units kapslar in olika objekt som är relevanta för systemuppstart och underhåll.
Majoriteten av units konfigureras i unit-konfigurationsfiler, vars syntax och grundläggande uppsättning optioner beskrivs i systemd.unit(5). Vissa skapas dock automatiskt från andra konfigurationsfiler, dynamiskt från systemtillstånd eller programmatiskt vid körning.
Units kan befinna sig i ett antal tillstånd, beskrivna i följande tabell. Observera att de olika unit-typerna kan ha ett antal ytterligare undertillstånd, som mappas till de generaliserade unit-tillstånden som beskrivs här.
Tabell 1. ACTIVE-tillstånd för units
| Tillstånd | Beskrivning |
|---|---|
| active | Startad, bunden, inkopplad, ..., beroende på unit-typ. |
| inactive | Stoppad, obunden, urkopplad, ..., beroende på unit-typ. |
| failed | Liknar inactive, men unit:en har misslyckats på något sätt, till exempel genom att en process returnerade felkod vid avslut, kraschade, en operation tog timeout eller efter för många omstarter. |
| activating | Ändras från inactive till active. |
| deactivating | Ändras från active till inactive. |
| maintenance | Unit:en är inactive och en underhållsåtgärd pågår. |
| reloading | Unit:en är active och laddar om sin konfiguration. |
| refreshing | Unit:en är active och en ny montering aktiveras i dess namnrymd. |
Följande unit-typer finns:
- Service units, som startar och styr daemoner och processerna de består av. För detaljer, se systemd.service(5).
- Socket units, som kapslar in lokala IPC- eller nätverkssockets i systemet, användbara för socket-baserad aktivering. För detaljer om socket units, se systemd.socket(5). För detaljer om socket-baserad aktivering och andra former av aktivering, se daemon(7).
- Target units är användbara för att gruppera units eller tillhandahålla välkända synkroniseringspunkter under uppstart, se systemd.target(5).
- Device units exponerar kärnenheter i systemd och kan användas för att implementera enhetsbaserad aktivering. För detaljer, se systemd.device(5).
- Mount units styr monteringspunkter i filsystemet. För detaljer, se systemd.mount(5).
- Automount units tillhandahåller automount-funktioner, för behovsstyrd montering av filsystem samt parallelliserad uppstart. Se systemd.automount(5).
- Timer units är användbara för att trigga aktivering av andra units baserat på timers. Se systemd.timer(5).
- Swap units liknar mount units och kapslar in minnesswap-partitioner eller filer i operativsystemet. De beskrivs i systemd.swap(5).
- Path units kan användas för att aktivera andra tjänster när filsystemsobjekt ändras eller modifieras. Se systemd.path(5).
- Slice units kan användas för att gruppera units som hanterar systemprocesser, såsom service- och scope units, i ett hierarkiskt träd för resurshantering. Se systemd.slice(5).
- Scope units liknar service units, men hanterar främmande processer i stället för att också starta dem. Se systemd.scope(5).
Units namnges som sina konfigurationsfiler. Vissa units har särskild semantik. En detaljerad lista finns i systemd.special(7).
systemd känner till olika slags beroenden, inklusive positiva och negativa kravberoenden, det vill säga Requires= och Conflicts=, samt ordningsberoenden, After= och Before=.
Observera att ordnings- och kravberoenden är ortogonala. Om endast ett kravberoende finns mellan två units, exempelvis att foo.service kräver bar.service, men inget ordningsberoende finns, exempelvis foo.service efter bar.service, och båda begärs startade, startas de parallellt.
Det är ett vanligt mönster att både krav- och ordningsberoenden placeras mellan två units. Observera också att majoriteten av beroenden skapas och underhålls implicit av systemd. I de flesta fall bör det vara onödigt att deklarera ytterligare beroenden manuellt, men det är möjligt.
Program och units, via beroenden, kan begära tillståndsändringar för units. I systemd kapslas dessa begäranden in som "jobs" och underhålls i en jobbkö. Jobs kan lyckas eller misslyckas, och deras körning ordnas baserat på ordningsberoendena för de units som jobben har schemalagts för.
Vid uppstart aktiverar systemd target-unit:en default.target, vars uppgift är att aktivera uppstartstjänster och andra uppstarts-units genom att dra in dem via beroenden.
Vanligen är unit-namnet bara ett alias, en symlink, till antingen graphical.target, för fullständig uppstart till användargränssnitt, eller multi-user.target, för begränsad konsoluppstart avsedd för inbyggda system, servermiljöer eller liknande. Administratören kan dock konfigurera den som alias till vilken annan target-unit som helst. Se systemd.special(7) för detaljer om dessa target units.
Vid första uppstart aktiverar eller inaktiverar systemd units enligt preset-policy. Se systemd.preset(5) och "First Boot Semantics" i machine-id(5).
systemd håller endast en minimal uppsättning units laddade i minnet. De enda units som hålls laddade i minnet är de för vilka minst ett av följande villkor är sant:
- Den är i ett active-, activating-, deactivating- eller failed-tillstånd, det vill säga i något unit-tillstånd utom "inactive".
- Den har ett jobb i kö.
- Den är ett beroende till minst en annan unit som är laddad i minnet.
- Den har någon form av resurs fortfarande allokerad, till exempel en service unit som är inactive men där en process fortfarande lever kvar och ignorerade begäran om avslut.
- Den har pinnats i minnet programmatiskt via ett D-Bus-anrop.
systemd laddar automatiskt och implicit units från disk, om de inte redan är laddade, så snart operationer begärs för dem. Därmed är det i många avseenden osynligt för klienter om en unit är laddad eller inte.
Använd:
systemctl list-units --all
för att heltäckande lista alla units som för närvarande är laddade.
Alla units för vilka inget av villkoren ovan gäller laddas snabbt ur. Observera att när en unit laddas ur från minnet spolas även dess bokföringsdata ut. Dessa data går dock i allmänhet inte förlorade, eftersom en journalpost genereras som deklarerar förbrukade resurser när en unit stängs av.
Processer som systemd skapar placeras i individuella Linux control groups namngivna efter den unit de hör till i den privata systemd-hierarkin. Se Control Groups v2[4] för mer information om control groups, eller "cgroups". systemd använder detta för att effektivt hålla reda på processer.
Control group-information underhålls i kärnan och är åtkomlig via filsystemshierarkin under /sys/fs/cgroup/, eller i verktyg som systemd-cgls(1) eller ps(1).
Följande kommando är särskilt användbart för att lista alla processer och de systemd-units de hör till:
ps xawf -eo pid,user,cgroup,args
systemd är kompatibelt med olika etablerade Unix-funktioner såsom /etc/fstab och utmp-databasen.
systemd har ett minimalt transaktionssystem: om en unit begärs startad eller stoppad läggs den och alla dess beroenden till i en temporär transaktion. Därefter verifieras att transaktionen är konsekvent, det vill säga att ordningen för alla units är cykelfri.
Om den inte är konsekvent försöker systemd reparera den och tar bort icke-väsentliga jobb från transaktionen som kan ta bort loopen. systemd försöker också undertrycka icke-väsentliga jobb i transaktionen som skulle stoppa en körande tjänst.
Slutligen kontrolleras om jobben i transaktionen motsäger jobb som redan har köats, och transaktionen avbryts eventuellt. Om allt fungerar och transaktionen är konsekvent och minimerad i sin påverkan slås den samman med alla redan utestående jobb och läggs till i körkön.
Detta innebär i praktiken att systemd innan en begärd operation körs verifierar att den är rimlig, reparerar den om möjligt, och misslyckas endast om den verkligen inte kan fungera.
Observera att transaktioner genereras oberoende av en units tillstånd vid körning. Om exempelvis ett startjobb begärs på en redan startad unit genereras ändå en transaktion och inaktiva beroenden väcks, samt andra jobb propageras enligt de definierade relationerna. Detta beror på att det köade jobbet vid körning jämförs med mål-unitens tillstånd och markeras som lyckat och fullbordat när båda uppfylls. Jobbet drar dock också in andra beroenden enligt de definierade relationerna och leder därmed, i exemplet, till startjobb för sådana inaktiva units.
Units kan genereras dynamiskt vid uppstart och när systemhanteraren laddas om, exempelvis baserat på andra konfigurationsfiler eller parametrar som skickats på kärnans kommandorad. För detaljer, se systemd.generator(7).
KATALOGER
System-unit-kataloger
- systemd-systemhanteraren läser unit-konfiguration från olika kataloger.
- Paket som vill installera unit-filer ska placera dem i katalogen som returneras av:
pkg-config systemd --variable=systemdsystemunitdir
- Andra kataloger som kontrolleras är /usr/local/lib/systemd/system och /usr/lib/systemd/system.
- Användarkonfiguration har alltid företräde.
- Följande returnerar sökvägen till systemkonfigurationskatalogen:
pkg-config systemd --variable=systemdsystemconfdir
- Paket bör endast ändra innehållet i dessa kataloger med kommandona enable och disable i verktyget systemctl(1).
- Fullständig lista över kataloger finns i systemd.unit(5).
User-unit-kataloger
- Liknande regler gäller för user-unit-kataloger.
- Här följs dock XDG Base Directory specification[5] för att hitta units.
- Program bör placera sina unit-filer i katalogen som returneras av:
pkg-config systemd --variable=systemduserunitdir
- Global konfiguration görs i katalogen som rapporteras av:
pkg-config systemd --variable=systemduserconfdir
- Kommandona enable och disable i verktyget systemctl(1) kan hantera både global, det vill säga för alla användare, och privat, för en användare, aktivering/inaktivering av units.
- Fullständig lista över kataloger finns i systemd.unit(5).
SIGNALER
Tjänsten lyssnar på olika UNIX-processignaler som kan användas för att begära olika åtgärder asynkront.
Signalhanteringen aktiveras mycket tidigt under uppstart, innan några ytterligare processer anropas. En övervakande containerhanterare eller liknande som avser att begära dessa operationer via denna mekanism måste dock ta hänsyn till att funktionaliteten inte är tillgänglig under den allra tidigaste initieringsfasen.
Ett sd_notify(3)-meddelande med fältet X_SYSTEMD_SIGNALS_LEVEL=2 skickas när signalhanterarna är aktiverade, se nedan. Detta kan användas för att schemalägga sändning av dessa signaler korrekt.
SIGTERM
- När systemd-systemhanteraren tar emot denna signal serialiserar den sitt tillstånd, kör om sig själv och deserialiserar det sparade tillståndet igen.
- Detta motsvarar i huvudsak:
systemctl daemon-reexec
- systemd-användarhanterare startar unit:en exit.target när denna signal tas emot.
- Detta motsvarar i huvudsak:
systemctl --user start exit.target --job-mode=replace-irreversibly
SIGINT
- När systemd-systemhanteraren tar emot denna signal startar den unit:en ctrl-alt-del.target.
- Detta motsvarar i huvudsak:
systemctl start ctrl-alt-del.target --job-mode=replace-irreversibly
- Om denna signal tas emot fler än 7 gånger per 2 s triggas en omedelbar omstart.
- Observera att Ctrl+Alt+Del på konsolen triggar denna signal. Om en omstart hänger är det därför ett relativt säkert sätt att trigga en omedelbar omstart genom att trycka Ctrl+Alt+Del fler än 7 gånger inom 2 sekunder.
- systemd-användarhanterare behandlar denna signal på samma sätt som SIGTERM.
SIGWINCH
- När denna signal tas emot startar systemd-systemhanteraren unit:en kbrequest.target.
- Detta motsvarar i huvudsak:
systemctl start kbrequest.target
- Denna signal ignoreras av systemd-användarhanterare.
SIGPWR
- När denna signal tas emot startar systemd-hanteraren unit:en sigpwr.target.
- Detta motsvarar i huvudsak:
systemctl start sigpwr.target
SIGUSR1
- När denna signal tas emot försöker systemd-hanteraren återansluta till D-Bus-bussen.
SIGUSR2
- När denna signal tas emot loggar systemd-hanteraren sitt fullständiga tillstånd i människoläsbar form.
- Data som loggas är samma som skrivs ut av:
systemd-analyze dump
SIGHUP
- Laddar om hela daemonkonfigurationen.
- Detta motsvarar i huvudsak:
systemctl daemon-reload
SIGRTMIN+0
- Går in i standardläge och startar unit:en default.target.
- Detta motsvarar i huvudsak:
systemctl isolate default.target
SIGRTMIN+1
- Går in i rescue-läge och startar unit:en rescue.target.
- Detta motsvarar i huvudsak:
systemctl isolate rescue.target
SIGRTMIN+2
- Går in i emergency-läge och startar unit:en emergency.service.
- Detta motsvarar i huvudsak:
systemctl isolate emergency.service
SIGRTMIN+3
- Stoppar maskinen och startar unit:en halt.target.
- Detta motsvarar i huvudsak:
systemctl start halt.target --job-mode=replace-irreversibly
SIGRTMIN+4
- Stänger av maskinen och startar unit:en poweroff.target.
- Detta motsvarar i huvudsak:
systemctl start poweroff.target --job-mode=replace-irreversibly
SIGRTMIN+5
- Startar om maskinen och startar unit:en reboot.target.
- Detta motsvarar i huvudsak:
systemctl start reboot.target --job-mode=replace-irreversibly
SIGRTMIN+6
- Startar om maskinen via kexec och startar unit:en kexec.target.
- Detta motsvarar i huvudsak:
systemctl start kexec.target --job-mode=replace-irreversibly
SIGRTMIN+7
- Startar om användarrymden och startar unit:en soft-reboot.target.
- Detta motsvarar i huvudsak:
systemctl start soft-reboot.target --job-mode=replace-irreversibly
- Tillagt i version 254.
SIGRTMIN+13
- Stoppar maskinen omedelbart.
SIGRTMIN+14
- Stänger av maskinen omedelbart.
SIGRTMIN+15
- Startar om maskinen omedelbart.
SIGRTMIN+16
- Startar om maskinen omedelbart med kexec.
SIGRTMIN+17
- Startar om användarrymden omedelbart.
- Tillagt i version 254.
SIGRTMIN+20
- Aktiverar visning av statusmeddelanden på konsolen, enligt styrning via systemd.show_status=1 på kärnans kommandorad.
- Du kan vilja använda SetShowStatus() i stället för SIGRTMIN+20 för att förhindra race conditions. Se org.freedesktop.systemd1(5).
SIGRTMIN+21
- Inaktiverar visning av statusmeddelanden på konsolen, enligt styrning via systemd.show_status=0 på kärnans kommandorad.
- Du kan vilja använda SetShowStatus() i stället för SIGRTMIN+21 för att förhindra race conditions. Se org.freedesktop.systemd1(5).
SIGRTMIN+22
- Sätter servicehanterarens loggnivå till "debug", på ett sätt som motsvarar systemd.log_level=debug på kärnans kommandorad.
SIGRTMIN+23
- Återställer loggnivån till dess konfigurerade värde.
- Det konfigurerade värdet härleds, i prioritetsordning, från värdet angivet med systemd.log-level= på kärnans kommandorad, eller värdet angivet med LogLevel= i konfigurationsfilen, eller den inbyggda standarden "info".
- Tillagt i version 239.
SIGRTMIN+24
- Avslutar hanteraren omedelbart, endast tillgängligt för --user-instanser.
- Tillagt i version 195.
SIGRTMIN+25
- När denna signal tas emot kör systemd-hanteraren om sig själv.
- Detta motsvarar i huvudsak systemctl daemon-reexec, förutom att det görs asynkront.
- systemd-systemhanteraren behandlar denna signal på samma sätt som SIGTERM.
- Tillagt i version 250.
SIGRTMIN+26
- Återställer loggmålet till dess konfigurerade värde.
- Det konfigurerade värdet härleds, i prioritetsordning, från värdet angivet med systemd.log-target= på kärnans kommandorad, eller värdet angivet med LogTarget= i konfigurationsfilen, eller den inbyggda standarden.
- Tillagt i version 239.
SIGRTMIN+27, SIGRTMIN+28
- Sätter loggmålet till "console" vid SIGRTMIN+27, eller "kmsg" vid SIGRTMIN+28, på ett sätt som motsvarar systemd.log_target=console, eller systemd.log_target=kmsg vid SIGRTMIN+28, på kärnans kommandorad.
- Tillagt i version 239.
MILJÖ
Miljöblocket för systemhanteraren sätts initialt av kärnan. Särskilt blir "key=value"-tilldelningar på kärnans kommandorad miljövariabler för PID 1.
För användarhanteraren sätter systemhanteraren miljön enligt beskrivningen i avsnittet "Environment Variables in Spawned Processes" i systemd.exec(5).
Inställningen DefaultEnvironment= i systemhanteraren gäller för alla tjänster, inklusive user@.service. Ytterligare poster kan konfigureras, som för alla andra tjänster, genom inställningarna Environment= och EnvironmentFile= för user@.service. Se systemd.exec(5).
Ytterligare miljövariabler kan också sättas genom inställningen ManagerEnvironment= i systemd-system.conf(5) och systemd-user.conf(5).
Några av variablerna som förstås av systemd:
$SYSTEMD_LOG_LEVEL
- Högsta loggnivå för meddelanden som skickas ut. Meddelanden med högre loggnivå, det vill säga mindre viktiga, undertrycks.
- Tar en kommaseparerad lista av värden. Ett värde kan vara ett av, i fallande viktighetsordning, emerg, alert, crit, err, warning, notice, info, debug, eller ett heltal i intervallet 0...7. Se syslog(3).
- Varje värde kan valfritt prefixas med ett av console, syslog, kmsg eller journal följt av kolon för att sätta högsta loggnivå för det specifika loggmålet, till exempel:
SYSTEMD_LOG_LEVEL=debug,console:info
- Den globala högsta loggnivån har företräde över alla per-mål-loggnivåer.
- Detta kan åsidosättas med --log-level=.
$SYSTEMD_LOG_COLOR
- Booleskt värde. Om sant färgas meddelanden som skrivs till tty enligt prioritet.
- Detta kan åsidosättas med --log-color=.
$SYSTEMD_LOG_TIME
- Booleskt värde. Om sant prefixas konsolloggmeddelanden med en tidsstämpel.
- Detta kan åsidosättas med --log-time=.
- Tillagt i version 246.
$SYSTEMD_LOG_LOCATION
- Booleskt värde. Om sant prefixas meddelanden med filnamn och radnummer i källkoden där meddelandet kommer från.
- Detta kan åsidosättas med --log-location=.
$SYSTEMD_LOG_TID
- Booleskt värde. Om sant prefixas meddelanden med aktuellt numeriskt tråd-ID, TID.
- Tillagt i version 247.
$SYSTEMD_LOG_TARGET
- Destination för loggmeddelanden.
- Ett av console, console-prefixed, kmsg, journal, journal-or-kmsg, auto eller null.
- Detta kan åsidosättas med --log-target=.
$SYSTEMD_LOG_RATELIMIT_KMSG
- Om kmsg ska rate-limitas eller inte. Tar ett booleskt värde.
- Standard är "true". Om inaktiverat rate-limitar systemd inte meddelanden som skrivs till kmsg.
- Tillagt i version 254.
$XDG_CONFIG_HOME, $XDG_CONFIG_DIRS, $XDG_DATA_HOME, $XDG_DATA_DIRS
- systemd-användarhanteraren använder dessa variabler enligt XDG Base Directory specification[5] för att hitta sin konfiguration.
$SYSTEMD_UNIT_PATH, $SYSTEMD_GENERATOR_PATH, $SYSTEMD_ENVIRONMENT_GENERATOR_PATH
- Styr var systemd letar efter unit-filer och generatorer.
- Dessa variabler kan innehålla en lista av sökvägar separerade med kolon, ":".
- Om listan slutar med en tom komponent, "...:", läggs denna lista före den vanliga uppsättningen sökvägar. Annars ersätter den angivna listan den vanliga uppsättningen sökvägar.
$SYSTEMD_PAGER, $PAGER
- Pager att använda när --no-pager inte anges.
- $SYSTEMD_PAGER används om den är satt; annars används $PAGER.
- Om ingen av dem är satt provas en uppsättning välkända pagerimplementationer i tur och ordning, inklusive less(1) och more(1), tills en hittas.
- Att sätta dessa miljövariabler till en tom sträng eller värdet "cat" motsvarar att skicka --no-pager.
- Observera: om $SYSTEMD_PAGERSECURE inte är satt kan $SYSTEMD_PAGER och $PAGER endast användas för att inaktivera pagern, med "cat" eller "", och ignoreras annars.
$SYSTEMD_LESS
- Åsidosätt optionerna som skickas till less, standard "FRSXMK".
- Användare kan särskilt vilja ändra optionerna K och X.
- K instruerar pagern att avsluta omedelbart när Ctrl+C trycks. För att låta less själv hantera Ctrl+C och växla tillbaka till pager-kommandoprompten, ta bort denna option.
- Om värdet på $SYSTEMD_LESS inte innehåller "K", och pagern som anropas är less, ignoreras Ctrl+C av det körbara programmet och behöver hanteras av pagern.
- X instruerar pagern att inte skicka termcap-initierings- och avslutningssträngar till terminalen. Den är satt som standard för att låta kommandoutdata förbli synlig i terminalen även efter att pagern avslutats. Detta hindrar dock viss pagerfunktionalitet från att fungera, särskilt kan sidindelad utdata inte rullas med musen.
- Den vanliga miljövariabeln $LESS påverkar inte less-anrop från systemd-verktyg.
- Se less(1) för mer diskussion.
$SYSTEMD_LESSCHARSET
- Åsidosätt teckenuppsättningen som skickas till less, standard "utf-8" om den anropande terminalen bedöms vara UTF-8-kompatibel.
- Den vanliga miljövariabeln $LESSCHARSET påverkar inte less-anrop från systemd-verktyg.
$SYSTEMD_PAGERSECURE
- Vanliga pagerkommandon som less(1) stöder, utöver sidvisning, även öppning av eller skrivning till andra filer och körning av godtyckliga skalkommandon.
- När kommandon körs med höjda privilegier, exempelvis under sudo(8) eller pkexec(1), blir pagern en säkerhetsgräns.
- Försiktighet måste iakttas så att endast program med strikt begränsad funktionalitet används som pagers och att oavsiktliga interaktiva funktioner som öppning eller skapande av nya filer eller start av underprocesser inte tillåts.
- "Secure mode" för pagern kan aktiveras enligt beskrivningen, om pagern stöder detta.
- Varianten tar ett booleskt argument. När den sätts till true aktiveras pagerns "secure mode". I "secure mode" sätts LESSSECURE=1 när pagern anropas.
- När den sätts till false läggs ingen begränsning på pagern. Att sätta SYSTEMD_PAGERSECURE=0 eller inte ta bort den från ärvd miljö kan låta användaren anropa godtyckliga kommandon.
- När $SYSTEMD_PAGERSECURE inte är satt försöker systemd-verktyg automatiskt avgöra om "secure mode" ska aktiveras och om pagern stöder det.
$SYSTEMD_COLORS
- Tar ett booleskt argument eller ett specialvärde.
- Som standard använder systemd och relaterade verktyg färger i utdata om möjligt. Om $COLORTERM är satt till "truecolor" eller "24bit" aktiveras 24-bitars färger, annars 256 färger, såvida inte $NO_COLOR eller $TERM anger att färger är inaktiverade.
- Värdena true, false, "16", "256", "24bit", "auto-16", "auto-256" och "auto-24bit" förstås.
$SYSTEMD_URLIFY
- Värdet måste vara booleskt. Styr om klickbara länkar ska genereras i utdata för terminalemulatorer som stöder detta.
$LISTEN_PID, $LISTEN_PIDFDID, $LISTEN_FDS, $LISTEN_FDNAMES
- Sätts av systemd för övervakade processer under socket-baserad aktivering. Se sd_listen_fds(3).
$NOTIFY_SOCKET
- Sätts av servicehanteraren för dess tjänster för status- och readiness-notifieringar.
- Konsumeras också av servicehanteraren för att notifiera övervakande containerhanterare eller servicehanterare högre upp i stacken om dess egen progression.
- Se sd_notify(3) och relevant avsnitt nedan för mer information.
För ytterligare miljövariabler som förstås av systemd och dess olika komponenter, se Known Environment Variables[7].
KÄRNANS KOMMANDORAD
När systemd körs som systeminstans tolkar den ett antal optioner som listas nedan.
De kan anges som argument på kärnans kommandorad, vilka tolkas från ett antal källor beroende på miljön där systemd körs.
Om systemd körs inne i en Linux-container tolkas dessa optioner från kommandoradsargumenten som skickas till systemd själv, bredvid någon av kommandoradsoptionerna som listas i avsnittet Optioner nedan.
Om systemd körs utanför Linux-containrar tolkas dessa argument i stället från /proc/cmdline.
Följande variabler förstås:
systemd.unit=, rd.systemd.unit=
- Åsidosätter unit:en att aktivera vid uppstart.
- Standard är default.target.
- Detta kan användas för att temporärt starta till en annan uppstarts-unit, exempelvis rescue.target eller emergency.service.
- Varianten med prefixet "rd." hedras endast i initrd, medan den utan prefix endast hedras i huvudsystemet.
systemd.dump_core
- Tar ett booleskt argument eller aktiverar optionen om den anges utan argument.
- Om aktiverad dumpar systemd-hanteraren, PID 1, core när den kraschar. Annars skapas ingen core dump.
- Standard är aktiverad.
- Tillagt i version 233.
systemd.crash_chvt
- Tar ett positivt heltal eller ett booleskt argument. Kan också anges utan argument, med samma effekt som ett positivt booleskt värde.
- Om ett positivt heltal i intervallet 1–63 anges aktiverar systemhanteraren, PID 1, den angivna virtuella terminalen när den kraschar.
- Standard är inaktiverat, vilket betyder att inget sådant byte försöks. Om satt till aktiverat används den virtuella terminal som kärnmeddelandena skrivs till.
- Tillagt i version 233.
systemd.crash_shell
- Tar ett booleskt argument eller aktiverar optionen om den anges utan argument.
- Om aktiverad skapar systemhanteraren, PID 1, ett skal när den kraschar. Annars skapas inget skal.
- Standard är inaktiverat av säkerhetsskäl, eftersom skalet inte skyddas av lösenordsautentisering.
- Tillagt i version 233.
systemd.crash_action=
- Tar ett av "freeze", "reboot" eller "poweroff".
- Standard är "freeze".
- Om satt till "freeze" hänger systemet obegränsat när systemhanteraren, PID 1, kraschar.
- Om satt till "reboot" startar systemhanteraren om maskinen automatiskt när den kraschar, efter 10 s fördröjning.
- Om satt till "poweroff" stänger systemhanteraren omedelbart av maskinen när den kraschar.
- Om detta kombineras med systemd.crash_shell körs den konfigurerade kraschåtgärden efter att skalet avslutas.
- Tillagt i version 256.
systemd.confirm_spawn
- Tar ett booleskt argument eller en sökväg till den virtuella konsol där bekräftelsemeddelanden ska skrivas.
- Kan också anges utan argument, med samma effekt som ett positivt booleskt värde.
- Om aktiverad frågar systemhanteraren, PID 1, efter bekräftelse när processer skapas via /dev/console.
- Om en sökväg eller ett konsolnamn, såsom "ttyS0", anges används den virtuella konsol som pekas ut av sökvägen eller beskrivs av namnet.
- Standard är inaktiverat.
- Tillagt i version 233.
systemd.service_watchdogs=
- Tar ett booleskt argument.
- Om inaktiverad ignoreras alla service-runtime-watchdogs, WatchdogSec=, och nödfallsåtgärder, exempelvis OnFailure= eller StartLimitAction=, av systemhanteraren, PID 1.
- Standard är aktiverad, det vill säga watchdogs och felåtgärder behandlas normalt.
- Hårdvaru-watchdogen påverkas inte av denna option.
- Tillagt i version 237.
systemd.show_status
- Tar ett booleskt argument eller konstanterna error och auto.
- Kan också anges utan argument, med samma effekt som ett positivt booleskt värde.
- Om aktiverad visar systemd-hanteraren, PID 1, korta tjänstestatusuppdateringar på konsolen under uppstart.
- Med error visas endast meddelanden om fel, medan uppstarten i övrigt är tyst.
- auto beter sig som false tills det finns en betydande fördröjning i uppstarten.
- Standard är aktiverad, såvida inte quiet skickas som kärnkommandoradsoption; i så fall är standard error.
- Om angiven åsidosätter den systemhanterarens konfigurationsfilsoption ShowStatus=. Se systemd-system.conf(5).
- Tillagt i version 233.
systemd.status_unit_format=
- Tar name, description eller combined som värde.
- Om name används använder systemhanteraren unit-namn i statusmeddelanden.
- Om combined används använder systemhanteraren unit-namn och beskrivning i statusmeddelanden.
- När angiven åsidosätter den systemhanterarens konfigurationsfilsoption StatusUnitFormat=. Se systemd-system.conf(5).
- Tillagt i version 243.
systemd.log_color, systemd.log_level=, systemd.log_location, systemd.log_target=, systemd.log_time, systemd.log_tid, systemd.log_ratelimit_kmsg
- Styr loggutdata med samma effekt som miljövariablerna $SYSTEMD_LOG_COLOR, $SYSTEMD_LOG_LEVEL, $SYSTEMD_LOG_LOCATION, $SYSTEMD_LOG_TARGET, $SYSTEMD_LOG_TIME, $SYSTEMD_LOG_TID och $SYSTEMD_LOG_RATELIMIT_KMSG som beskrivs ovan.
- systemd.log_color, systemd.log_location, systemd.log_time, systemd.log_tid och systemd.log_ratelimit_kmsg kan anges utan argument, med samma effekt som ett positivt booleskt värde.
systemd.default_standard_output=, systemd.default_standard_error=
- Styr standardvärdet för standardutdata och felutdata för tjänster och sockets.
- Det vill säga standarden för StandardOutput= och StandardError=. Se systemd.exec(5).
- Tar ett av inherit, null, tty, journal, journal+console, kmsg eller kmsg+console.
- Om argumentet utelämnas blir systemd.default-standard-output= som standard journal och systemd.default-standard-error= som standard inherit.
systemd.setenv=
- Tar ett strängargument i formen VARIABLE=VALUE.
- Kan användas för att sätta standardmiljövariabler att lägga till i forkade barnprocesser.
- Kan användas mer än en gång för att sätta flera variabler.
systemd.machine_id=
- Tar ett 32 tecken långt hexvärde att använda för att sätta machine-id.
- Avsett främst för nätverksuppstart där samma machine-id önskas för varje uppstart.
- Tillagt i version 229.
systemd.set_credential=, systemd.set_credential_binary=
- Sätter en system-credential, som sedan kan propageras till systemtjänster med inställningen ImportCredential= eller LoadCredential=. Se systemd.exec(5).
- Tar ett par av credential-namn och värde, separerat med kolon.
- Parametern systemd.set_credential= förväntar sig credential-värdet i bokstavlig textform.
- Parametern systemd.set_credential_binary= tar binärdata kodad i Base64.
- Observera att kärnans kommandorad normalt är åtkomlig för oprivilegierade program i /proc/cmdline. Därför är denna mekanism inte lämplig för överföring av känsliga data.
- Använd den endast för data som inte är känsliga, exempelvis publika nycklar/certifikat snarare än privata nycklar, eller i test-/felsökningsmiljöer.
- För mer information, se dokumentationen System and Service Credentials[8].
- Tillagt i version 251.
systemd.import_credentials=
- Tar ett booleskt argument.
- Om false inaktiveras import av credentials från kärnans kommandorad, DMI/SMBIOS OEM string-tabellen, qemu_fw_cfg-subsystemet eller EFI-kärnstubben.
- Tillagt i version 251.
quiet
- Stänger av statusutdata vid uppstart, ungefär som systemd.show_status=no skulle göra.
- Observera att denna option också läses av kärnan själv och inaktiverar kärnloggutdata. Att skicka denna option stänger därför av vanlig utdata från både systemhanteraren och kärnan.
- Tillagt i version 186.
debug
- Aktiverar felsökningsutdata.
- Detta motsvarar systemd.log_level=debug.
- Observera att denna option också läses av kärnan själv och aktiverar kärnans felsökningsutdata. Att skicka denna option aktiverar därför felsökningsutdata från både systemhanteraren och kärnan.
- Tillagt i version 205.
emergency, rd.emergency
- Starta i emergency-läge.
- Dessa optioner motsvarar systemd.unit=emergency.target respektive rd.systemd.unit=emergency.target.
- De tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar.
- Tillagt i version 186.
rescue, rd.rescue, single, 1
- Starta i rescue-läge.
- Dessa optioner motsvarar antingen systemd.unit=rescue.target eller rd.systemd.unit=rescue.target.
- De tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar.
- Tillagt i version 186.
3, 5
- Genvägar för att starta till specifika targets.
- 3 motsvarar systemd.unit=multi-user.target och 5 motsvarar systemd.unit=graphical.target.
- Dessa optioner tillhandahölls ursprungligen för kompatibilitet med SysV men behålls som praktiska genvägar.
- Tillagt i version 186.
locale.LANG=, locale.LANGUAGE=, locale.LC_CTYPE=, locale.LC_NUMERIC=, locale.LC_TIME=, locale.LC_COLLATE=, locale.LC_MONETARY=, locale.LC_MESSAGES=, locale.LC_PAPER=, locale.LC_NAME=, locale.LC_ADDRESS=, locale.LC_TELEPHONE=, locale.LC_MEASUREMENT=, locale.LC_IDENTIFICATION=
- Sätt systemlokalen som ska användas.
- Detta åsidosätter inställningarna i /etc/locale.conf.
- För mer information, se locale.conf(5) och locale(7).
- Tillagt i version 186.
systemd.minimum_uptime_sec=
- Tar en tid i sekunder.
- Anger minsta upptid för systemet innan systemet stängs av.
- För mer information, se inställningen MinimumUptimeSec= i systemd-system.conf(5).
- Tillagt i version 261.
För andra kärnkommandoradsparametrar som förstås av komponenter i kärn-OS:et, se kernel-command-line(7).
SYSTEM-CREDENTIALS
Under initiering importerar servicehanteraren credentials från olika källor till systemets uppsättning credentials, som sedan kan propageras till tjänster och konsumeras av generatorer:
- När servicehanteraren först initieras läser den system-credentials från SMBIOS Type 11 vendor strings: io.systemd.credential:name=value och io.systemd.credential.binary:name=value.
- Samtidigt importerar den credentials från QEMU "fw_cfg". Observera att SMBIOS-mekanismen i allmänhet föredras eftersom den är snabbare och generisk.
- Credentials kan skickas via kärnans kommandorad med parametern systemd.set-credential=, se ovan.
- Credentials kan skickas från UEFI-miljön via systemd-stub(7).
- När servicehanteraren anropas under övergången initrd → host importerar den alla filer i /run/credentials/@initrd/ som system-credentials.
Anropa systemd-creds(1) enligt följande för att se listan över credentials som skickats in i systemet:
# systemd-creds --system list
För ytterligare information, se dokumentationen System and Service Credentials[8].
Servicehanteraren konsumerar följande system-credentials när den körs som PID 1:
vmm.notify_socket
- Innehåller en AF_VSOCK- eller AF_UNIX-adress dit ett READY=1-notifieringsmeddelande ska skickas när servicehanteraren har slutfört uppstarten.
- Se sd_notify(3) och nästa avsnitt för mer information.
- Om hypervisorn inte stöder SOCK_DGRAM över AF_VSOCK provas SOCK_SEQPACKET i stället.
- Credential-payload för AF_VSOCK ska vara en sträng i formen "vsock:CID:PORT".
- "vsock-stream", "vsock-dgram" och "vsock-seqpacket" kan användas i stället för "vsock" för att tvinga användning av motsvarande sockettyp.
- Funktionen är användbar för maskinhanterare eller andra processer på värden som vill ta emot en notifiering via VSOCK när en virtuell maskin har startat färdigt.
- Tillagt i version 254.
system.machine_id
- Tar ett 128-bitars hexadecimalt ID för att initiera /etc/machine-id från, om filen ännu inte är uppsatt.
- Se machine-id(5) för detaljer.
- Tillagt i version 254.
För en lista över system-credentials som olika andra komponenter i systemd konsumerar, se systemd.system-credentials(7).
READINESS-PROTOKOLL
Servicehanteraren implementerar ett readiness-notifieringsprotokoll både mellan hanteraren och dess tjänster, det vill säga nedåt i stacken, och mellan hanteraren och en möjlig övervakare längre upp i stacken.
Den senare kan vara en maskin- eller containerhanterare, eller, i fallet med en per-användare-servicehanterare, systemservicehanterarinstansen.
Grundprotokollet, och det föreslagna API:t för det, beskrivs i sd_notify(3).
Notifieringssocketen som servicehanteraren, inklusive PID 1, använder för att rapportera readiness till sin egen övervakare sätts via den vanliga miljövariabeln $NOTIFY_SOCKET, se ovan.
Eftersom detta bara direkt kan sättas för containerhanterare och för per-användarinstansen av servicehanteraren finns en ytterligare mekanism för att konfigurera detta, särskilt avsedd för VM-miljöer: system-credentialen vmm.notify_socket, se ovan, kan sättas till en lämplig socket, typiskt en AF_VSOCK, via SMBIOS Type 11 vendor strings.
Notifieringsprotokollet från servicehanteraren uppåt i stacken mot en övervakare stöder ett antal utökningsfält som låter en övervakare få veta specifika egenskaper hos systemet och följa dess uppstartsframsteg.
Följande fält skickas:
- Ett X_SYSTEMD_HOSTNAME=...-meddelande skickas när systemets initiala hostname har bestämts. Observera att hostname senare under körning kan ändras programmatiskt, och för närvarande skickas inga ytterligare notifieringar i detta fall. Tillagt i version 256.
- Ett X_SYSTEMD_MACHINE_ID=...-meddelande skickas när systemets machine ID har bestämts. Se machine-id(5). Tillagt i version 256.
- Ett X_SYSTEMD_SIGNALS_LEVEL=...-meddelande skickas när servicehanteraren installerat de olika UNIX-processignalhanterarna som beskrivs ovan. Fältets värde är ett osignerat heltal formaterat som decimal sträng och anger den stödda UNIX-processignal-funktionsnivån hos servicehanteraren.
- X_SYSTEMD_SIGNALS_LEVEL=2 täcker de olika UNIX-processignalerna som dokumenteras ovan, vilka är en övermängd av dem som stöds av det historiska SysV init-systemet.
- X_SYSTEMD_UNIT_ACTIVE=...- och X_SYSTEMD_UNIT_INACTIVE=...-meddelanden skickas för varje target-unit när den blir aktiv eller slutar vara aktiv. Detta är användbart för att följa uppstartsframsteg och funktionalitet. Till exempel är SSH-åtkomst typiskt tillgänglig när ssh-access.target rapporteras startad. Se systemd.special(7). Tillagt i version 256.
- Ett X_SYSTEMD_SHUTDOWN=...-meddelande skickas mycket kort innan systemet stängs av. Värdet är en av strängarna "reboot", "halt", "poweroff", "kexec" och anger vilken slags nedstängning som körs. Tillagt i version 256.
- Ett X_SYSTEMD_REBOOT_PARAMETER=...-meddelande skickas också mycket kort innan systemet stängs av. Dess värde är reboot-argumentet som konfigurerats med systemctl --reboot-argument=.... Tillagt i version 256.
Signaler som skickas till PID 1 innan X_SYSTEMD_SIGNALS_LEVEL=...-meddelandet skickas kanske ännu inte hanteras korrekt.
En konsument av dessa meddelanden bör tolka värdet som ett osignerat heltal som anger stödnivån. För närvarande är endast nivå 2 definierad, men senare kan ytterligare nivåer definieras med högre heltal, som implementerar en övermängd av det för närvarande definierade beteendet.
Observera att dessa utökningsfält skickas utöver de vanliga notifieringarna "READY=1" och "RELOADING=1".
OPTIONER
systemd anropas endast mycket sällan direkt, eftersom den startas tidigt och redan kör när användare kan interagera med den.
Normalt används verktyg som systemctl(1) för att ge kommandon till hanteraren.
Eftersom systemd vanligtvis inte anropas direkt är optionerna nedan mest användbara för felsökning och särskilda syften.
Introspektions- och felsökningsoptioner
Dessa optioner används för testning och introspektion, och systemd kan anropas med dem när som helst:
--dump-configuration-items
- Dumpa förstådda unit-konfigurationsposter.
- Detta skriver ut en kortfattad men komplett lista över konfigurationsposter som förstås i unit-definitionsfiler.
--dump-bus-properties
- Dumpa exponerade bus-egenskaper.
- Detta skriver ut en kortfattad men komplett lista över egenskaper som exponeras på D-Bus.
- Tillagt i version 239.
--test
- Bestäm den initiala uppstartstransaktionen, det vill säga listan över jobb som köas vid uppstart, dumpa den och avsluta utan att faktiskt köra några av de bestämda jobben.
- Denna option är endast användbar för felsökning.
- Observera att under vanlig start av servicehanteraren kan ytterligare units som inte visas av denna operation startas, eftersom hårdvaru-, socket-, bus- eller andra typer av aktivering kan lägga till ytterligare jobb när transaktionen körs.
- Använd --system för att begära den initiala transaktionen för systemservicehanteraren, vilket också är underförstådd standard, och kombinera med --user för att i stället begära den initiala transaktionen för per-användare-servicehanteraren.
--system, --user
- När de används tillsammans med --test väljer de om den initiala transaktionen ska beräknas för systeminstansen eller för en per-användarinstans.
- Dessa optioner har ingen effekt när de anropas utan --test, eftersom servicehanteraren vid vanliga anrop automatiskt upptäcker om den ska arbeta i system- eller per-användarläge genom att kontrollera om PID den körs som är 1 eller inte.
- Observera att det inte stöds att starta och underhålla ett system med servicehanteraren körande i --system-läge men med ett annat PID än 1.
-h, --help
- Skriv ut en kort hjälptext och avsluta.
--version
- Skriv ut en kort versionssträng och avsluta.
Optioner som duplicerar kärnans kommandoradsinställningar
Dessa optioner motsvarar direkt optioner som listas ovan i "Kärnans kommandorad".
Båda formerna kan användas ekvivalent för systemhanteraren, men det rekommenderas att använda formerna listade ovan i detta sammanhang eftersom de är korrekt namnrymdade.
När en option anges både på kärnans kommandorad och som normalt kommandoradsargument har den senare högre prioritet.
När systemd används som användarhanterare ignoreras kärnans kommandorad och endast optionerna nedan förstås.
systemd startas dock vanligen i detta läge via tjänsten user@.service(5), som delas mellan alla användare. Det kan vara bekvämare att använda konfigurationsfiler för att ändra inställningar, se systemd-user.conf(5), eller miljövariabler. Se avsnittet "Miljö" ovan.
--unit=
- Sätt standard-unit att aktivera vid start.
- Om den inte anges är standard default.target.
- Se systemd.unit= ovan.
--dump-core
- Aktivera core dump vid krasch.
- Denna växel har ingen effekt när den körs som användarinstans.
- Samma som systemd.dump_core= ovan.
--crash-vt=VT
- Byt till en specifik virtuell konsol, VT, vid krasch.
- Denna växel har ingen effekt när den körs som användarinstans.
- Samma som systemd.crash_chvt= ovan, men observera den olika stavningen.
- Tillagt i version 227.
--crash-shell
- Kör ett skal vid krasch.
- Denna växel har ingen effekt när den körs som användarinstans.
- Se systemd.crash_shell= ovan.
--crash-action=
- Ange vad som ska göras när systemhanteraren, PID 1, kraschar.
- Denna växel har ingen effekt när systemd körs som användarinstans.
- Se systemd.crash_action= ovan.
- Tillagt i version 256.
--confirm-spawn
- Fråga efter bekräftelse när processer skapas.
- Denna växel har ingen effekt när den körs som användarinstans.
- Se systemd.confirm_spawn ovan.
--show-status
- Visa kortfattad unit-statusinformation på konsolen under uppstart och nedstängning.
- Se systemd.show_status ovan.
- Tillagt i version 244.
--log-color
- Markera viktiga loggmeddelanden.
- Se systemd.log_color ovan.
- Tillagt i version 244.
--log-level=
- Sätt loggnivå.
- Se systemd.log_level ovan.
--log-location
- Inkludera kodplats i loggmeddelanden.
- Se systemd.log_location ovan.
- Tillagt i version 244.
--log-target=
- Sätt loggmål.
- Se systemd.log_target ovan.
--log-time=
- Prefixa konsolmeddelanden med tidsstämpel.
- Se systemd.log_time ovan.
- Tillagt i version 246.
--machine-id=
- Åsidosätt machine-id som satts på hårddisken.
- Se systemd.machine_id= ovan.
- Tillagt i version 229.
--service-watchdogs
- Aktivera/inaktivera globalt alla service-watchdog-timeouter och nödfallsåtgärder.
- Se systemd.service_watchdogs ovan.
- Tillagt i version 237.
--default-standard-output=, --default-standard-error=
- Sätter standardutdata respektive felutdata för alla tjänster och sockets.
- Se systemd.default_standard_output= och systemd.default_standard_error= ovan.
SYSTEMKLOCKANS EPOK
När systemd startas eller startas om kan den sätta systemklockan till "epoken".
Denna mekanism används för att säkerställa att systemklockan förblir någorlunda rimligt initierad och grovt monoton över omstarter, om ingen batteristödd lokal RTC finns tillgänglig eller om den inte fungerar korrekt.
Epoken är det lägsta datum ovanför vilket systemklockans tid antas vara korrekt satt.
Vid initiering flyttas den lokala klockan fram till epoken om den var satt till ett lägre värde.
Som specialfall antas hårdvaruklockan vara trasig om den lokala klockan är tillräckligt långt i framtiden, som standard 15 år men detta kan konfigureras vid byggtid, och systemklockan vrids då tillbaka till epoken.
Epoken sätts till det högsta av: byggtiden för systemd, modifieringstiden, "mtime", för /usr/lib/clock-epoch, och modifieringstiden för /var/lib/systemd/timesync/clock.
FILER
/run/systemd/notify
- Socket för daemonstatusnotifiering.
- Detta är en AF_UNIX datagramsocket och används för att implementera daemon-notifieringslogiken enligt sd_notify(3).
/run/systemd/private
- Används internt som kommunikationskanal mellan systemctl(1) och systemd-processen.
- Detta är en AF_UNIX stream socket.
- Gränssnittet är privat för systemd och ska inte användas i externa projekt.
/usr/lib/clock-epoch
- Modifieringstiden, "mtime", för denna fil används för tidsepoken, se föregående avsnitt.
- Tillagt i version 247.
/var/lib/systemd/timesync/clock
- Modifieringstiden, "mtime", för denna fil uppdateras av systemd-timesyncd.service(8).
- Om filen finns används dess modifieringstid för epoken, se föregående avsnitt.
- Tillagt i version 257.
HISTORIK
systemd 252
- Kärnkommandoradsargumenten systemd.unified_cgroup_hierarchy och systemd.legacy_systemd_cgroup_controller blev föråldrade.
- Byt till unified cgroup hierarchy.
SE ÄVEN
The systemd Homepage[9], systemd-system.conf(5), locale.conf(5), systemctl(1), journalctl(1), systemd-notify(1), daemon(7), sd-daemon(3), org.freedesktop.systemd1(5), systemd.unit(5), systemd.special(7), pkg-config(1), kernel-command-line(7), bootup(7), systemd.directives(7), org.freedesktop.systemd1(5)
För mer information om koncepten och idéerna bakom systemd, se Original Design Document[10].
ANMÄRKNINGAR
1. Interface Portability and Stability Promise
https://systemd.io/PORTABILITY_AND_STABILITY/
2. Container Interface
https://systemd.io/CONTAINER_INTERFACE
3. initrd Interface
https://systemd.io/INITRD_INTERFACE/
4. Control Groups v2
https://docs.kernel.org/admin-guide/cgroup-v2.html
5. XDG Base Directory specification
https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
6. Det rekommenderas att andra verktyg sätter och kontrollerar $SUDO_UID efter behov, och behandlar det som ett gemensamt gränssnitt.
7. Known Environment Variables
https://systemd.io/ENVIRONMENT
8. System and Service Credentials
https://systemd.io/CREDENTIALS
9. systemd Homepage
10. Original Design Document
https://0pointer.de/blog/projects/systemd.html
systemd 261.2
Sidslut
Orginalhemsidan på Engelska https://man.archlinux.org/man/init.1.en
Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på på https://www.linux.se/kontaka-linux-se/
Tack till Datorservice som har sponsrat Linux.se med webbhotell.