Systemd ui binära alternativ


systemd är en system - och servicechef för Linux, kompatibel med SysV och LSB init scripts. systemd ger aggressiva parallelliseringsfunktioner, använder socket och D-Bus-aktivering för starttjänster, erbjuder efterfrågan på daemoner, håller koll på processer som använder Linux-grupper, stöder snapshotting och återställning av systemstatus, bibehåller monterings - och automount-punkter och implementerar en utarbeta transaktionsberoende-baserad servicekontrolllogik. Det kan fungera som ett inlösenbyte för sysvinit. För mer information, titta på videon på youtubewatchvTyMLi8QF6sw För systemadministratörer Systemadministratörer kan besöka den här sidan. för att förstå hur man använder de inbyggda systemctl-samtalen som ersätter deras gamla arbetsflöde i SysVinit. Observera att kommandona service och chkconfig fortsätter att fungera som förväntat i systemd-världen. Varför systemd systemdokumentation systemd har mycket omfattande dokumentation. Se Boot Kernel Command Line På boot systemd aktiveras (som standard), målenheten default. target vars jobb är att aktivera tjänster och andra enheter genom att dra in dem via beroenden. För att åsidosätta enheten för att aktivera, analyserar systemd sina egna kommandoradsargument för kommandoraden via systemd. unit kommandoradsalternativet. Detta kan användas för att tillfälligt starta upp i en annan boot-enhet. De klassiska körnivåerna ersätts enligt följande: systemd. unitrescue. target är en speciell målenhet för att ställa in bassystemet och ett räddningsskal (liknande körnivå 1) systemd. unitemergency. target. ligner mycket på att passera initbinsh men med möjlighet att starta hela systemet därifrån systemd. unitmulti-user. target för att konfigurera ett icke-grafiskt system för flera användare systemd. unitgraphical. target för att konfigurera en grafisk inloggningsskärm. För detaljer om dessa speciella systemd boot-enheter, se mannen systemd. special sida. det skript Vad är verktyget för att hantera tjänster med systemd systemctl är det primära verktyget att använda. Den kombinerar funktionaliteten hos både service och chkconfig till ett enda verktyg som du kan använda till exempel för aktiverbara tjänster permanent eller endast för den aktuella sessionen. lista alla löpande tjänster etc: Se man systemctl för mer information. systemd-cgls listar körprocessen i ett trädformat. Det kan rekursivt visa innehållet i en viss kontrollgrupp. Mer information finns i man systemd-cgls. Hur startar jag upp eller aktiverar tjänster? Aktiverar en tjänst omedelbart: Avaktiverar en tjänst omedelbart: Startar om en tjänst: Visar status för en tjänst, inklusive om den körs eller inte. Aktiverar att en tjänst startas vid uppstart: Inaktiverar en tjänst som inte startar under uppstart: Förhindra att en tjänst startar dynamiskt eller till och med manuellt, om inte maskeras: Kontrollera om en tjänst redan är aktiverad eller inte: Se manualsystem för mer information. Hur ändrar jag målet (runlevel) systemd har begreppet mål som är en mer flexibel ersättning för runlevels i sysvinit. Körningsnivå 3 emuleras av multi-user. target. Körningsnivå 5 emuleras av graphical. target. runlevel3.target är en symbolisk länk till multi-user. target och runlevel5.target är en symbolisk länk till graphical. target. Du kan växla till Runlevel 3 genom att springa Du kan växla till Runlevel 5 genom att springa Hur ändrar jag standardmålet Graphical. target är standardvärdet. Du kanske vill ha flera användarvärden för motsvarande icke grafiska (runlevel 3) från sysv init. Den fullständiga listan över mål kan nås via systemctl list-enheter - typetarget systemd använder inte etcinittab-fil. Hur känner jag till det aktuella målet Hur man stänger av maskinen Några fler möjligheter är: halt - p. init 0. shutdown - P nu Observera att stoppet används för att fungera samma som poweroff i tidigare Fedora-versioner, men systemd skiljer mellan de två, så stoppa utan parametrar gör nu exakt vad det säger - det stannar bara systemet utan att stänga av det. Fungerar tjänstekommando med systemd Ja. Det har ändrats för att ringa systemctl automatiskt när man hanterar systemd servicefiler. Så en av följande kommandon gör detsamma Har chkconfig kommandot arbetat med systemd Ja, för att sätta på tjänsterna, har kompatibiliteten tillhandahållits på båda sätten. chkconfig har ändrats för att ringa systemctl vid hantering av systemd servicefiler. Systemtl kallar också automatiskt chkconfig vid hantering av en traditionell sysv init-fil. Så en av följande kommandon gör detsamma som chkconfig - list inte listar systemd-tjänster, bara Sys V-tjänster. Utgången från chkconfig noterar detta, tillsammans med ytterligare information. Fungerar system-config-tjänster med systemd Hur ändrar jag antalet gettys som standard Det enklaste sättet är att redigera etcsystemdlogind. conf (man sida): Den här inställningen träder i kraft efter omstart. Alternativt kan getty. services som öppnar inloggningsprompten aktiveras och startas individuellt. För att lägga till en annan getty: För att ta bort en getty: systemd använder inte etcinittab-filen. Hur ställer jag in automatisk inloggning på en virtuell konsolterminal Skapa först en ny tjänst som liknar getty. service: redigera sedan ExecStart, Restart och Alias-värdena så här: och slutligen ladda daemon och starta tjänsten: Observera att om du avslutar tty8 session , du kan inte använda den förrän nästa omstart eller manuell start av systemctl, förutom om du lämnar omstart som alltid, men jag rekommenderar starkt att du undviker detta av säkerhetsskäl. Hur anpassar jag en enhetsfil lägg till en anpassad enhetsfil Det bästa sättet att anpassa enhetsfiler är att lägga till etcsystemdsystemfoobar. service. d.conf där foobar. service är namnet på den tjänst du vill anpassa. Om en katalog inte existerar, skapa en och släpp en conf-fil med de inställningar du vill åsidosätta. Till exempel, se sidan man systemd. unit för mer information. Glöm inte att ladda om systemdemon med systemctl daemon-reload och systemctl starta om foobar efter att ha redigerat en enhetfil där foobar är enhetens namn. Observera också att du kan systemd delta för att lista de enhetfiler som har anpassats och även de exakta skillnaderna. Särskild vård måste vidtas när övergripande alternativ som kan ställas in flera gånger (ExecStart. ExecStartPre. ExecStartPost är ett vanligt exempel). Att tilldela ett värde till alternativet läggs till i den befintliga listan, medan att ange det tomma värdet återställer listan. Låt oss exempelvis säga att vi har en servicefil som denna: När den startas utskriftstjänsten Samma regler gäller för utdrag i. d-kataloger. Det betyder att utdrag som överväger ExecStart och liknande inställningar, bör ofta börja med den tomma uppgiften ExecStart. följt av den nya inställningen. Hur debugger jag systemd problem systemd kommer med omfattande dokumentation inklusive flera man sidor. Referencessystemd är en serie grundläggande byggstenar för ett Linux-system. Den tillhandahåller en system - och servicehanterare som kör som PID 1 och startar resten av systemet. systemd ger aggressiva parallelliseringsmöjligheter, använder socket och D-Bus-aktivering för starttjänster, erbjudande på begäran av daemoner, håller reda på processer som använder Linux-kontrollgrupper. upprätthåller monterings - och automountpunkter, och implementerar en detaljerad servicebaserad servicebaserad logistik för transaktionsberoende. systemd stöder SysV och LSB init scripts och fungerar som ersättning för sysvinit. Andra delar inkluderar en loggdemon, verktyg för att styra grundläggande systemkonfiguration som värdnamn, datum, lokal, upprätthålla en lista med inloggade användare och körcontainrar och virtuella maskiner, systemkonton, runtime kataloger och inställningar och daemoner för att hantera ett enkelt nätverk konfiguration, nätverkssynkronisering, logg vidarebefordran och namnupplösning. Obs! För en detaljerad förklaring till varför Arch har flyttat till systemd. se detta forum inlägg. Grundläggande systemkonsumtion Huvudkommandot som används för att introspektera och styra systemd är systemctl. Några av dess användningsområden undersöker systemtillståndet och hanterar systemet och tjänsterna. Se man systemctl för mer information. Tips! Du kan använda alla följande systemctl-kommandon med - H användarvärdbrytaren för att styra en systemd-instans på en fjärrmaskin. Detta kommer att använda SSH för att ansluta till fjärran systemd-förekomsten. systemadm är den officiella grafiska fronten för systemctl och tillhandahålls av systemd-ui-paketet. Plasmaanvändare kan installera systemd-kcm som en grafisk frontad för systemctl. Efter installationen läggs modulen under Systemadministration. Analysera systemstatus Visa systemstatus med: List running units: Lista misslyckade enheter: De tillgängliga enhetsfilerna kan ses i usrlibsystemdsystem och etcsystemdsystem (det senare har förrang). Lista installerade enhetsfiler med: Använda enheter Enheter kan vara till exempel tjänster (.service), monteringspunkter (.mount), enheter (.device) eller uttag (.socket). Vid användning av systemctl. du måste generellt ange enhetens fullständiga namn, inklusive dess suffix, till exempel sshd. socket. Det finns dock några korta formulär när du anger enheten i följande systemctl-kommandon: Om du inte anger suffixet kommer systemctl att anta. service. Till exempel är netctl och netctl. service ekvivalenta. Monteringspunkter kommer automatiskt att översättas till lämplig. mount-enhet. Till exempel motsvarar hemmet motsvarande home. mount. På samma sätt som monteringspunkter översätts enheter automatiskt till den lämpliga. device-enheten, vilket innebär att devsda2 motsvarar dev-sda2.device. Se man systemd. unit för detaljer. Obs! Vissa enhetnamn innehåller ett tecken (t ex namnsträng. service): det betyder att de är instanser av en mallenhet, vars faktiska filnamn inte innehåller strängdelen (t ex namn. service). sträng kallas förekomstidentifieraren. och liknar ett argument som skickas till mallenheten när det kallas med systemctl-kommandot: I enhetsfilen kommer det att ersätta i-specifieraren. För att vara mer exakt, innan du försöker att inställa namnet template. suffix, kommer systemd faktiskt att leta efter en enhet med exakt namestring. suffix filnamn, men enligt konventionen sker en sådan konflikt sällan, dvs de flesta enhetsfiler som innehåller ett tecken är menade att vara mallar. Om en mallenhet kallas utan en instansidentifierare, kommer den också att misslyckas, eftersom jag-specifikationen inte kan ersättas. Tips: De flesta av följande kommandon fungerar också om flera enheter är specificerade, se man systemctl för mer information. Den - nu-omkopplaren kan användas tillsammans med aktivera. inaktivera. och maskera att starta, stoppa eller maskera omedelbart enheten snarare än efter nästa start. Ett paket kan erbjuda enheter för olika ändamål. Om du bara har installerat ett paket kan pacman-Qql paket grep - Fe. service - e. socket användas för att kontrollera och hitta dem. Starta en enhet omedelbart: Stanna en enhet omedelbart: Fråga en enhet om att ladda om dess konfiguration: Visa status för en enhet, inklusive om den körs eller inte: Kontrollera om en enhet redan är aktiverad eller inte: Aktivera en enhet som ska startas på starta upp . Avaktivera en enhet som inte startar under uppstart: Maskera en enhet för att göra det omöjligt att starta det: Visa den manuella sidan som är kopplad till en enhet (det måste stödjas av enhetsfilen): Ladda om systemd. skanning för nya eller ändrade enheter. Strömhanteringspolkit är nödvändigt för strömhantering som en icke-privilegierad användare. Om du befinner dig i en lokal systemd-logins användarsession och ingen annan session är aktiv, fungerar följande kommandon utan root-privilegier. Om inte (till exempel, eftersom en annan användare är inloggad i en tty), frågar systemd automatiskt om root-lösenordet. Stäng av och starta om systemet: Stäng av och stäng av systemet: Stäng av systemet: Sätt i systemet i viloläge: Sätt systemet i hybrid-sovläge (eller suspend-to-båda): Skrivarfiler Systemdynammen s-enhetens filer är inspirerade av XDG Desktop Entry Specification. desktop-filer, som i sin tur inspireras av Microsoft Windows. ini-filer. Enhetsfiler laddas från två platser. Från lägsta till högsta prioritet är de: usrlibsystemdsystem. enheter som tillhandahålls av installerade paket etcsystemdsystem. enheter installerade av systemadministratören Obs! Lastvägarna är helt olika när du kör systemd i användarläge. systemdhetsnamn får bara innehålla ASCII alfanumeriska tecken, understreck och perioder. Alla andra tecken måste bytas ut av C-style x2d escapes. Se man systemd. unit och man systemd-escape för mer information. Titta på de enheter som installerats av dina paket för exempel, liksom det annoterade exemplet av man systemd. service. Tips: Kommentarer som läggs fram med kan även användas i enhetsfiler, men bara i nya rader. Använd inte slutkommentarer efter systemd-parametrar eller enheten kommer inte att aktivera. Hantering av beroenden Med systemd. beroenden kan lösas genom att designa enhetsfilerna korrekt. Det vanligaste fallet är att enheten A kräver att enheten B körs innan A startas. I så fall behöver tillägg B och efter B till enhetens avsnitt av A. Om beroendet är frivilligt, lägg till vill B och efter B istället. Observera att önskningar och krav kräver inte efter. vilket innebär att om två gånger inte anges kommer de två enheterna att startas parallellt. Beroenden är typiskt placerade på tjänster och inte på mål. Till exempel, network. target dras in med vilken tjänst som helst som konfigurerar dina nätverksgränssnitt och beställer därför din anpassade enhet efter det att den är tillräcklig eftersom network. target startas ändå. Tjänstetyper Det finns flera olika starttyper att överväga när du skriver en anpassad servicefil. Detta ställs in med typparametern i serviceavsnittet: Typesimple (standard): systemd anser att tjänsten ska startas omedelbart. Processen får inte gaffel. Använd inte denna typ om andra tjänster behöver beställas på den här tjänsten, såvida inte den är inkopplad. Typeforking. systemd anser att tjänsten startat när processgafflarna och föräldern har gått ut. För klassiska daemon använder du denna typ om du inte vet att det inte är nödvändigt. Du bör också ange PIDFile så att systemd kan hålla reda på huvudprocessen. Typeoneshot. Det här är användbart för skript som gör ett enda jobb och sedan avslutar. Du kanske vill ställa in RemainAfterExityes så att systemet fortfarande anser tjänsten vara aktiv när processen har gått ut. Typenotify. identisk med Typesimple. men med bestämmelsen att demonen skickar en signal till systemd när den är klar. Referensimplementet för denna anmälan tillhandahålls av libsystemd-daemon. so. Typedbus. Tjänsten anses redo när den angivna BusName visas på DBuss systembuss. Typeidle. systemd försenar utförandet av tjänsten binärt tills alla jobb skickas. Annat än det beteendet liknar Typesimple. Se systemd. service (5) man sida för en mer detaljerad förklaring av typvärdena. Redigering av givna enheter För att undvika konflikter med pacman, bör enhetsfiler som tillhandahålls av paket inte redigeras direkt. Det finns två säkra sätt att ändra en enhet utan att röra den ursprungliga filen: skapa en ny enhetsfil som överstyrar originalenheten eller skapa inmatningsutdrag som appliceras ovanpå originalenheten. För båda metoderna måste du ladda om enheten efteråt för att tillämpa dina ändringar. Detta kan göras antingen genom att redigera enheten med systemctl edit (som automatiskt laddar om enheten) eller genom att ladda om alla enheter med: Tips: Du kan använda systemd-delta för att se vilka enhetsfiler som har överskridits eller förlängts och vad exakt har ändrats . Använd systemcat-enhet för att visa innehållet i en enhetsfil och alla associerade inmatningsutdrag. Syntaxmarkering för systemd-enhetfiler inom Vim kan aktiveras genom att installera vim-systemd. Ersättningsenhetsfiler För att ersätta enhetens fil usrlibsystemdsystem enhet. skapa filen etcsystemdsystem enhet och aktivera enheten för att uppdatera symlinks: Detta öppnar etcsystemdsystem i din editor (kopierar den installerade versionen om den inte existerar ännu) och laddar automatiskt om den när du är klar med redigering. Obs! Pacman uppdaterar inte utbytesenhetsfilerna när originalen uppdateras, så den här metoden kan göra systemunderhållet svårare. Av denna anledning rekommenderas nästa tillvägagångssätt. Inlämningsfiler För att skapa inlämningsfiler för enhetens fil usrlibsystemdsystem enhet. skapa katalogen etcsystemdsystem unit. d och placera. conf-filer där för att åsidosätta eller lägga till nya alternativ. systemd kommer att analysera dessa. conf-filer och applicera dem ovanpå originalenheten. Det enklaste sättet att göra detta är att köra: Det öppnar filen etcsystemdsystem unit. doverride. conf i din textredigerare (skapa det om det behövs) och laddar automatiskt om enheten när du är klar med att redigera. Återgå till leverantörsversion Om du vill återställa eventuella ändringar i en enhet som görs med systemctl, gör redigera: Om du till exempel bara vill lägga till ett ytterligare beroende av en enhet kan du skapa följande fil: Som ett annat exempel, för att ersätta ExecStart Direktiv för en enhet som inte är av typen oneshot. skapa följande fil: Observera hur ExecStart måste rensas innan den återtilldelas 1. Detsamma gäller för varje objekt som kan anges flera gånger, t. ex. OnCalendar för timers. Ett exempel till att starta om en tjänst automatiskt: Anledning: Otydlig beskrivning, kopieringsklättat innehåll (uttryckligen nämnt Fedora). (Diskutera i Talk: SystemdMake-sektionen Mål tydligare) systemd använder mål som tjänar en liknande syfte som runlevels men fungerar lite annorlunda. Varje mål heter istället för numrerat och är avsett att tjäna ett visst syfte med möjligheten att ha flera aktiva samtidigt. Vissa mål s genomförs genom att ärva alla tjänster av ett annat mål och lägga till ytterligare tjänster till den. Det finns systemd-mål s som efterliknar de vanliga SystemVinit-runlevelarna så att du fortfarande kan byta mål s med det bekanta telinit RUNLEVEL-kommandot. Hämta nuvarande mål Följande ska användas under systemd istället för att köra runlevel. Skapa anpassat mål Körningsnivåerna som innehöll en definierad betydelse under sysvinit (dvs 0, 1, 3, 5 och 6) har en kartläggning av 1: 1 med ett specifikt systemd-mål. Tyvärr finns det inget bra sätt att göra detsamma för de användardefinierade körningsnivåerna som 2 och 4. Om du använder dem föreslås det att du skapar ett nytt systemdimensionsmål som etcsystemdsystem ditt mål som tar en av de befintliga runlen som en bas (du kan titta på usrlibsystemdsystemgraphical. target som ett exempel), gör en katalog etcsystemdsystem ditt mål. vill. och symlink sedan de extra tjänsterna från usrlibsystemdsystem som du vill aktivera. Mål tabell Ändra aktuellt mål I systemd mål exponeras via målenheter. Du kan ändra dem så här: Detta ändrar bara det aktuella målet och har ingen effekt på nästa start. Detta motsvarar kommandon som telinit 3 eller telinit 5 i Sysvinit. Ändra standardmålet för att starta in i Standardmålet är default. target. som aliaseras som standard till graphical. target (vilket ungefär motsvarar det gamla runlevelet 5). För att ändra standardmålet vid starttiden lägger du till en av följande kärnparametrar i din startladdare: systemd. unitmulti-user. target (vilket ungefär motsvarar det gamla runlevel 3), systemd. unitrescue. target (vilket ungefär motsvarar gamla runlevel 1). Alternativt kan du lämna bootloader ensam och ändra default. target. Detta kan göras med hjälp av systemctl. För att kunna åsidosätta den tidigare inställda default. target. använd kraftalternativet: Effekten av detta kommando utmatas av systemctl en symlink till det nya standardmålet görs på etcsystemdsystemdefault. target. Temporära filer systemd-tmpfiles skapar, raderar och rensar upp flyktiga och tillfälliga filer och kataloger. Det läser konfigurationsfiler i etctmpfiles. d och usrlibtmpfiles. d för att upptäcka vilka åtgärder som ska utföras. Konfigurationsfiler i den tidigare katalogen har företräde framför dem i den senare katalogen. Konfigurationsfiler tillhandahålls vanligtvis tillsammans med servicefiler, och de heter enligt usrlibtmpfiles. d program. conf. Samba-demonen förväntar sig exempelvis att katalogen runsamba ska existera och att ha rätt behörigheter. Därför skickas samba-paketet med den här konfigurationen: Konfigurationsfiler kan också användas för att skriva värden i vissa filer vid start. Om du till exempel använde etcrc. local för att inaktivera wakeup från USB-enheter med echo USBE gt procacpiwakeup. du kan använda följande tmpfile istället: Se systemd-tmpfiles (8) och tmpfiles. d (5) man pages för detaljer. Obs! Den här metoden kanske inte fungerar för att ange alternativ i sys eftersom systemd-tmpfiles-setup-tjänsten kan köras innan lämpliga enhetsmoduler är laddade. I det här fallet kan du kontrollera om modulen har en parameter för det alternativ du vill ställa in med modinfo-modulen och ange det här alternativet med en config-fil i etcmodprobe. d. Annars måste du skriva en udev-regel för att ställa in lämplig egenskap så snart enheten visas. En timer är en enhetskonfigurationsfil vars namn slutar med. timer och kodar information om en timerstyrd och övervakad av systemd. för timerbaserad aktivering. Se systemdTimers. Eftersom systemd är en ersättning för System V init, är det ansvaret för de monteringar som anges i etcfstab. Faktum är att den går utöver de vanliga fstabfunktionerna, genom att implementera speciella monteringsalternativ prefixed med x-systemd. Se FstabAutomount med systemd för ett exempel på automounting (mounting on demand) med dessa tillägg. Se 2 för fullständig dokumentation av dessa tillägg. systemd har ett eget loggningssystem som kallas tidningen, därför är det inte längre nödvändigt att köra en syslog-demon. För att läsa loggen, använd: I Arch Linux är katalogvarlogjournal en del av systemd-paketet och journalen (när lagring är inställd på auto i etcsystemdjournald. conf) kommer att skrivas till varlogjournal. Om du eller något program tar bort den katalogen, kommer systemd inte att återskapa den automatiskt och istället kommer den att skriva sina loggar till runsystemdjournal på ett nonpersistent sätt. Emellertid kommer mappen att återskapas när du ställer in Storagepersistent och kör systemctl omstart systemd-journald (eller omstart). Systemd journal klassificerar meddelanden efter prioritetsnivå och anläggning. Loggningsklassificering motsvarar det klassiska Syslog-protokollet (RFC 5424). Prioritetsnivå En syslog-svårighetsgradskod (i systemd kallad prioritet) används för att markera vikten av ett meddelande RFC 5424 avsnitt 6.2.1. Så, användbara faciliteter att titta på: 0,1,3,4,9,10,15. Filtrering av output journalctl låter dig filtrera utmatningen med specifika fält. Var medveten om att om det finns många meddelanden som ska visas eller filtreras av stor tidsperiod måste det göras, kan utsignalen från det här kommandot försenas under en längre tid. Tips: Medan journalen är lagrad i ett binärt format, ändras inte innehållet i lagrade meddelanden. Det betyder att det kan ses med strängar. till exempel för återställning i en miljö som inte har systemd installerat. Exempelkommando: Visa alla meddelanden från den här uppstarten: Men ofta är en intresserad av meddelanden som inte är aktuella, men från föregående start (t ex om en oåterkallelig systemkrasch inträffade). Detta är möjligt genom valfri offset-parameter för - b-flaggan: journalctl - b -0 visar meddelanden från aktuell start, journalctl - b -1 från föregående start, journalctl - b -2 från den andra föregående och så vidare. Se man 1 journalctl för fullständig beskrivning, semantiken är mycket kraftfullare. Visa alla meddelanden från datum (och valfri tid): Visa alla meddelanden sedan 20 minuter sedan: Följ nya meddelanden: Visa alla meddelanden av en viss körbar: Visa alla meddelanden med en viss process: Visa alla meddelanden av en viss enhet: Visa kärna rings buffert: Visa endast fel, kritiska och varna prioriteringsmeddelanden Nummer kan också användas, journalctl - p 3..1. Om enskilt nummertalord används, journalctl - p 3 - alla högre prioritetsnivåer ingår också. Visa auth. log ekvivalent genom att filtrera på syslog-anläggningen: Se man 1 journalctl. man 7 systemd. journal-fält. eller Lennarts blogginlägg för detaljer. Tips: Som standard stryker journalceller linjer som är längre än skärmens bredd, men i vissa fall kan det vara bättre att aktivera omslag istället för trunkerande. Detta kan styras av SYSTEMDLESS miljövariabeln. som innehåller alternativ som skickas till mindre (standardparatorn) och standardvärden till FRSXMK (se man 1 mindre och man 1 journalctl för detaljer). Genom att utelämna S-alternativet kommer utmatningen att vikas i stället för avkortad. Till exempel starta journalen enligt följande: Om du vill ställa in detta beteende som standard, exportera variabeln från gränsvärdet för journalstorlek Om journalen är beständig (icke-flyktig), är dess gränsvärde inställd på ett standardvärde på 10 av Storleken på det underliggande filsystemet men begränsat till 4 GiB. Till exempel, med varlogjournal som finns på en 20 GiB-partition kan journaldata ta upp till 2 GiB. På en 50 GiB-partition skulle den maximalt vara 4 GiB. Den maximala storleken på den ihållande tidskriften kan kontrolleras genom att inte kommentera och ändra följande: Det är också möjligt att använda inställningsfunktionen för inmatningsutskrifter istället för att redigera den globala konfigurationsfilen. I detta fall glöm inte att placera överklagandena under journalrubriken: Se man journald. conf för mer info. Rensa journalfiler manuellt Journalsfiler kan globalt tas bort från varlogjournal med t. ex. rm. eller kan trimmas enligt olika kriterier med hjälp av journalen. Exempel: Ta bort arkiverade journalfiler tills diskutrymmet som de använder faller under 100 M: Gör att alla journalfiler inte innehåller data som är äldre än 2 veckor. Se man journalctl för mer info. Journald i samband med syslog Kompatibilitet med ett klassiskt, icke-journalt medveten syslog-genomförande kan tillhandahållas genom att låta systemd vidarebefordra alla meddelanden via socket runsystemdjournalsyslog. För att syslog demonen ska fungera med tidningen måste den binda till den här kontakten istället för devlog (officiellt meddelande). Standard journald. conf för vidarebefordran till uttaget är ForwardToSyslogno för att undvika systemkostnader, eftersom rsyslog eller syslog-ng automatiskt tar emot meddelanden från tidningen. Vidarebefordran till devtty12 Skapa en inlämningskatalog etcsystemdjournald. conf. d och skapa en fw-tty12.conf-fil i den: Ange en annan journal för att se Det kan behöva kontrolleras loggarna till ett annat system som är dött i vatten, som att starta från ett levande system för att återställa ett produktionssystem. I sådant fall kan man montera disken i t. ex. mnt. och ange journalsvägen via - D - katalog. Så här: Tips och tricks Aktivera installerade enheter som standard Orsak: Hur fungerar det med instantierade enheter (Diskutera i Talk: Systemd) Arch Linux skickas med usrlibsystemdsystem-preset99-default. preset innehållande inaktivera. Detta gör att systemctl förinställs för att inaktivera alla enheter som standard, så att när ett nytt paket är installerat måste användaren manuellt aktivera enheten. Om detta beteende inte är önskvärt, skapa helt enkelt en symlink från etcsystemdsystem-preset99-default. preset till devnull för att åsidosätta konfigurationsfilen. Detta kommer att medföra att systeminställningen är förinställd för att aktivera alla enheter som får installeras oberoende av den typ som anges i en annan fil i en systemkonfigurationskonfigurationskatalog. Användarenheter påverkas inte. Se manpageen för systemd. preset för mer information. Obs! Att aktivera alla enheter som standard kan orsaka problem med paket som innehåller två eller flera enheter som ömsesidigt exkluderar. systemctl förinställd är avsedd att användas av distributioner och spinn eller systemadministratörer. I de fall där två motstridiga enheter skulle vara aktiverade bör du explicit ange vilken som ska avaktiveras i en förinställd konfigurationsfil som anges på manningssidan för systemd. preset. Sandboxing-applikationsmiljöer En enhetsfil kan skapas som en sandlåda för att isolera applikationer och deras processer inom en härdad virtuell miljö. systemd använder namnområden. vit svart lista över funktioner. och kontrollgrupper till behållare processer genom en omfattande utförande miljö konfiguration. Förbättringen av en befintlig systemd-enhetfil med applikationssandboxning kräver vanligtvis prov-och-felprov tillsammans med generös användning av strace. stderr och journalctl felloggning och utmatningsanläggningar. Du kanske vill först söka uppströms dokumentation för redan gjorda test till basprov på. Några exempel på hur sandboxing med systemd kan distribueras: CapabilityBoundingSet definierar en vitlistad uppsättning tillåtna möjligheter, men kan också användas för att svartlista en specifik egenskap för en enhet. CAPSYSADM-funktionen, till exempel, som borde vara ett av målen för en säker sandlåda. CapabilitiesBoundingSet CAPSYSADM UnboundSandboxing visar ett fullskaligt exempel på systemd-funktioner för sandboxning. Felsökning Att undersöka systemd-fel Som ett exempel kommer vi att undersöka ett fel med systemd-moduler-laddningstjänsten: 1. Låter hitta systemd-tjänsterna som misslyckas med att starta: 2. Ok, vi hittade ett problem med systemd-moduler-laddningstjänsten. Vi vill veta mer: Om process-id inte är listat, starta bara om den misslyckade tjänsten med systemctl starta om systemd-moduler-load 3. Nu har vi process-id (PID) för att undersöka detta fel på djupet. Ange följande kommando med det aktuella Process ID (här: 15630): 4. Vi ser att några av kärnmodulkonfigurerna har fel inställningar. Därför tittar vi på dessa inställningar i etcmodules-load. d. 5. Det gick inte att hitta modulen blacklist usblp felmeddelande kan vara relaterat till en fel inställning inuti blacklist. conf. Låt oss avaktivera det genom att lägga in ett bakomslag före varje alternativ vi hittade via steg 3: 6. Försök nu att starta systemd-moduler-lasten. Om det lyckades, borde det inte leda till något. Om du ser något fel, gå tillbaka till steg 3 och använd den nya PID för att lösa de fel som finns kvar. Om allt är ok kan du verifiera att tjänsten startades framgångsrikt med: Ofta kan du lösa sådana problem som ovan. För ytterligare undersökning se Diagnostisera startproblem. Diagnosticera boot problems systemd har flera alternativ för att diagnostisera problem med startprocessen. Se boot debugging och systemd debugging dokumentation. Diagnostisera problem med en viss tjänst Orsak: Det här får inte fånga alla fel som saknade bibliotek. (Diskutera i användarpresentation: AlucrydPlex) Om någon systemd-tjänst misslyckas och du vill få mer information om vad som händer, ställer du in SYSTEMDLOGLEVEL-miljövariabeln för att felsöka. Till exempel, för att köra systemd-networkd-demonen i felsökningsläge: Eller, ändrar tjänstefilen på motsvarande sätt tillfälligt för att samla tillräckligt med utdata. Till exempel: Om felsökningsinformation krävs på lång sikt, lägg till variabeln på vanligt sätt. Shutdownreboot tar väldigt lång tid Om avstängningsprocessen tar mycket lång tid (eller verkar frysa) är det troligt att en tjänst som inte är spännande är skyldig. systemd väntar lite tid för varje tjänst att avsluta innan man försöker döda den. To find out if you are affected, see this article. Short lived processes do not seem to log any output If journalctl - u foounit does not show any output for a short lived service, look at the PID instead. For example, if systemd-modules-load. service fails, and systemctl status systemd-modules-load shows that it ran as PID 123, then you might be able to see output in the journal for that PID, i. e. journalctl - b PID61123. Metadata fields for the journal such as SYSTEMDUNIT and COMM are collected asynchronously and rely on the proc directory for the process existing. Fixing this requires fixing the kernel to provide this data via a socket connection, similar to SCMCREDENTIALS. Boot time increasing over time After using systemd-analyze a number of users have noticed that their boot time has increased significantly in comparison with what it used to be. After using systemd-analyze blame NetworkManager is being reported as taking an unusually large amount of time to start. The problem for some users has been due to varlogjournal becoming too large. This may have other impacts on performance, such as for systemctl status or journalctl. As such the solution is to remove every file within the folder (ideally making a backup of it somewhere, at least temporarily) and then setting a journal file size limit as described in Journal size limit. systemd-tmpfiles-setup. service fails to start at boot Starting with systemd 219, usrlibtmpfiles. dsystemd. conf specifies ACL attributes for directories under varlogjournal and, therefore, requires ACL support to be enabled for the filesystem the journal resides on. See Access Control ListsEnabling ACL for instructions on how to enable ACL on the filesystem that houses varlogjournal. systemctl enable fails for symlinks in etcsystemdsystem If etcsystemdsystem foo. service is a symlink and systemctl enable foo. service is run, it will fail with this error: This is a design choice of systemd. As a workaround, enabling by absolute path works: dependent services are not started when starting a service manually One (in)famous example is libvirtd. service which needs the virtlogd. socket to function properly. The dependencies in usrlibsystemdsystemlibvirtd. service are defined as This only defines the necessarydependent sockets to be enabled services(i. e. as autostart), too - but does not start them whenever the DISABLED ( non-autostarting) service ist started manually e. g. by running systemctl start libvirtd Thus the correct () way to manually start a service with dependent subservices once (instead of at each start of the system) probably is systemd version printed on boot is not the same as installed package version You need to regenerate your initramfs and the versions should match. Tip: A pacman hook can be used to automatically regenerate the initramfs every time systemd is upgraded. See this forum thread and PacmanHooks. Binary Options Trading with IQ Option What is binary options First of all, it is a highly profitable online trading tool that allows you to estimate the amount of potential profit in advance. Binär optionshandel kan ge betydande intäkter på kortast möjliga tid. Traders köper alternativ till ett förutbestämt pris. Onlinehandel kan vara lönsam om näringsidkaren korrekt identifierar marknadsrörelsen. Fördelar med binär optionshandel är en högriskområde där du antingen kan dubbla eller tom tredubblera din kapital eller förlora den om några minuter. Binära alternativ har flera fördelar som gör det möjligt att få mer vinst med förutsägbar risk. Ett alternativ med fast vinst skiljer sig från traditionell handel. Nybörjare kan handla binära alternativ med IQ-alternativ lika bra som erfarna handlare. Hela processen är helt automatiserad. Binära optionshandlare är medvetna om vinsten i förväg, huvudmålet är att välja rätt rörelse för marknadsrörelsen. De behöver välja mellan två riktningar bara upp eller ner. Två typer av onlinehandel IQ Options-plattformen låter dig handla binära alternativ i två grundläggande lägen. Övningskonto är för träning. För att öppna ett träningskonto och för att testa din styrka behöver du inte ens göra en insättning. För verklig handel måste du bara betala 10. Detta garanterar en bonus på upp till 36. När du öppnar ett konto för en större mängd (från 3 000), kommer en personlig kontochef att vara till din tjänst. Handelsverksamhet som erbjuds på denna webbplats kan betraktas som högriskhandelstransaktioner och deras genomförande kan vara mycket riskabelt. Inköp av finansiella instrument eller utnyttjande av tjänster som erbjuds på webbplatsen kan leda till betydande förluster eller till och med i en total förlust av alla pengar på ditt konto. Du beviljas begränsade icke-exklusiva icke överlåtbara rättigheter att använda den IP som tillhandahålls på denna webbplats för personliga och icke-kommersiella ändamål i förhållande till de tjänster som erbjuds på webbplatsen. Företaget agerar utanför Ryska federationen. eu. iqoption ägs och drivs av Iqoption Europe Ltd. IQ Option, 20132017 Information om lösenordsåterställning har skickats till ditt mail. Registreringen är för närvarande inte tillgänglig i Ryska federationen. If you think youre seeing this message by mistake, please contact supportiqoption. We hope you find this tutorial helpful. In addition to guides like this one, we provide simple cloud infrastructure for developers. Learn more rarr How To Use Journalctl to View and Manipulate Systemd Logs Introduction Some of the most compelling advantages of systemd are those involved with process and system logging. When using other tools, logs are usually dispersed throughout the system, handled by different daemons and processes, and can be fairly difficult to interpret when they span multiple applications. Systemd attempts to address these issues by providing a centralized management solution for logging all kernel and userland processes. The system that collects and manages these logs is known as the journal. The journal is implemented with the journald daemon, which handles all of the messages produced by the kernel, initrd, services, etc. In this guide, we will discuss how to use the journalctl utility, which can be used to access and manipulate the data held within the journal. General Idea One of the impetuses behind the systemd journal is to centralize the management of logs regardless of where the messages are originating. Since much of the boot process and service management is handled by the systemd process, it makes sense to standardize the way that logs are collected and accessed. The journald daemon collects data from all available sources and stores them in a binary format for easy and dynamic manipulation. This gives us a number of significant advantages. By interacting with the data using a single utility, administrators are able to dynamically display log data according to their needs. This can be as simple as viewing the boot data from three boots ago, or combining the log entries sequentially from two related services to debug a communication issue. Storing the log data in a binary format also means that the data can be displayed in arbitrary output formats depending on what you need at the moment. For instance, for daily log management you may be used to viewing the logs in the standard syslog format, but if you decide to graph service interruptions later on, you can output each entry as a JSON object to make it consumable to your graphing service. Since the data is not written to disk in plain text, no conversion is needed when you need a different on-demand format. The systemd journal can either be used with an existing syslog implementation, or it can replace the syslog functionality, depending on your needs. While the systemd journal will cover most administrators logging needs, it can also complement existing logging mechanisms. For instance, you may have a centralized syslog server that you use to compile data from multiple servers, but you also may wish to interleave the logs from multiple services on a single system with the systemd journal. You can do both of these by combining these technologies. Setting the System Time One of the benefits of using a binary journal for logging is the ability to view log records in UTC or local time at will. By default, systemd will display results in local time. Because of this, before we get started with the journal, we will make sure the timezone is set up correctly. The systemd suite actually comes with a tool called timedatectl that can help with this. First, see what timezones are available with the list-timezones option: This will list the timezones available on your system. When you find the one that matches the location of your server, you can set it by using the set-timezone option: To ensure that your machine is using the correct time now, use the timedatectl command alone, or with the status option. The display will be the same: The first line should display the correct time. Basic Log Viewing To see the logs that the journald daemon has collected, use the journalctl command. When used alone, every journal entry that is in the system will be displayed within a pager (usually less ) for you to browse. The oldest entries will be up top: You will likely have pages and pages of data to scroll through, which can be tens or hundreds of thousands of lines long if systemd has been on your system for a long while. This demonstrates how much data is available in the journal database. The format will be familiar to those who are used to standard syslog logging. However, this actually collects data from more sources than traditional syslog implementations are capable of. It includes logs from the early boot process, the kernel, the initrd, and application standard error and out. These are all available in the journal. You may notice that all of the timestamps being displayed are local time. This is available for every log entry now that we have our local time set correctly on our system. All of the logs are displayed using this new information. If you want to display the timestamps in UTC, you can use the --utc flag: Journal Filtering by Time While having access to such a large collection of data is definitely useful, such a large amount of information can be difficult or impossible to inspect and process mentally. Because of this, one of the most important features of journalctl is its filtering options. Displaying Logs from the Current Boot The most basic of these which you might use daily, is the - b flag. This will show you all of the journal entries that have been collected since the most recent reboot. This will help you identify and manage information that is pertinent to your current environment. In cases where you arent using this feature and are displaying more than one day of boots, you will see that journalctl has inserted a line that looks like this whenever the system went down: This can be used to help you logically separate the information into boot sessions. Past Boots While you will commonly want to display the information from the current boot, there are certainly times when past boots would be helpful as well. The journal can save information from many previous boots, so journalctl can be made to display information easily. Some distributions enable saving previous boot information by default, while others disable this feature. To enable persistent boot information, you can either create the directory to store the journal by typing: Or you can edit the journal configuration file: Under the Journal section, set the Storage option to persistent to enable persistent logging: When saving previous boots is enabled on your server, journalctl provides some commands to help you work with boots as a unit of division. To see the boots that journald knows about, use the --list-boots option with journalctl : This will display a line for each boot. The first column is the offset for the boot that can be used to easily reference the boot with journalctl. If you need an absolute reference, the boot ID is in the second column. You can tell the time that the boot session refers to with the two time specifications listed towards the end. To display information from these boots, you can use information from either the first or second column. For instance, to see the journal from the previous boot, use the -1 relative pointer with the - b flag: You can also use the boot ID to call back the data from a boot: Time Windows While seeing log entries by boot is incredibly useful, often you may wish to request windows of time that do not align well with system boots. This may be especially true when dealing with long-running servers with significant uptime. You can filter by arbitrary time limits using the --since and --until options, which restrict the entries displayed to those after or before the given time, respectively. The time values can come in a variety of formats. For absolute time values, you should use the following format: For instance, we can see all of the entries since January 10th, 2015 at 5:15 PM by typing: If components of the above format are left off, some defaults will be applied. For instance, if the date is omitted, the current date will be assumed. If the time component is missing, 00:00:00 (midnight) will be substituted. The seconds field can be left off as well to default to 00: The journal also understands some relative values and named shortcuts. For instance, you can use the words yesterday, today, tomorrow, or now. You do relative times by prepending - or to a numbered value or using words like ago in a sentence construction. To get the data from yesterday, you could type: If you received reports of a service interruption starting at 9:00 AM and continuing until an hour ago, you could type: As you can see, its relatively easy to define flexible windows of time to filter the entries you wish to see. Filtering by Message Interest We learned above some ways that you can filter the journal data using time constraints. In this section well discuss how to filter based on what service or component you are interested in. The systemd journal provides a variety of ways of doing this. Perhaps the most useful way of filtering is by the unit you are interested in. We can use the - u option to filter in this way. For instance, to see all of the logs from an Nginx unit on our system, we can type: Typically, you would probably want to filter by time as well in order to display the lines you are interested in. For instance, to check on how the service is running today, you can type: This type of focus becomes extremely helpful when you take advantage of the journals ability to interleave records from various units. For instance, if your Nginx process is connected to a PHP-FPM unit to process dynamic content, you can merge the entries from both in chronological order by specifying both units: This can make it much easier to spot the interactions between different programs and debug systems instead of individual processes. By Process, User, or Group ID Some services spawn a variety of child processes to do work. If you have scouted out the exact PID of the process you are interested in, you can filter by that as well. To do this we can filter by specifying the PID field. For instance if the PID were interested in is 8088, we could type: At other times, you may wish to show all of the entries logged from a specific user or group. This can be done with the UID or GID filters. For instance, if your web server runs under the www-data user, you can find the user ID by typing: Afterwards, you can use the ID that was returned to filter the journal results: The systemd journal has many fields that can be used for filtering. Some of those are passed from the process being logged and some are applied by journald using information it gathers from the system at the time of the log. The leading underscore indicates that the PID field is of the latter type. The journal automatically records and indexes the PID of the process that is logging for later filtering. You can find out about all of the available journal fields by typing: We will be discussing some of these in this guide. For now though, we will go over one more useful option having to do with filtering by these fields. The - F option can be used to show all of the available values for a given journal field. For instance, to see which group IDs the systemd journal has entries for, you can type: This will show you all of the values that the journal has stored for the group ID field. This can help you construct your filters. By Component Path We can also filter by providing a path location. If the path leads to an executable, journalctl will display all of the entries that involve the executable in question. For instance, to find those entries that involve the bash executable, you can type: Usually, if a unit is available for the executable, that method is cleaner and provides better info (entries from associated child processes, etc). Sometimes, however, this is not possible. Displaying Kernel Messages Kernel messages, those usually found in dmesg output, can be retrieved from the journal as well. To display only these messages, we can add the - k or --dmesg flags to our command: By default, this will display the kernel messages from the current boot. You can specify an alternative boot using the normal boot selection flags discussed previously. For instance, to get the messages from five boots ago, you could type: By Priority One filter that system administrators often are interested in is the message priority. While it is often useful to log information at a very verbose level, when actually digesting the available information, low priority logs can be distracting and confusing. You can use journalctl to display only messages of a specified priority or above by using the - p option. This allows you to filter out lower priority messages. For instance, to show only entries logged at the error level or above, you can type: This will show you all messages marked as error, critical, alert, or emergency. The journal implements the standard syslog message levels. You can use either the priority name or its corresponding numeric value. In order of highest to lowest priority, these are: The above numbers or names can be used interchangeably with the - p option. Selecting a priority will display messages marked at the specified level and those above it. Modifying the Journal Display Above, we demonstrated entry selection through filtering. There are other ways we can modify the output though. We can adjust the journalctl display to fit various needs. Truncate or Expand Output We can adjust how journalctl displays data by telling it to shrink or expand the output. By default, journalctl will show the entire entry in the pager, allowing the entries to trail off to the right of the screen. This info can be accessed by pressing the right arrow key. If youd rather have the output truncated, inserting an ellipsis where information has been removed, you can use the --no-full option: You can also go in the opposite direction with this and tell journalctl to display all of its information, regardless of whether it includes unprintable characters. We can do this with the - a flag: Output to Standard Out By default, journalctl displays output in a pager for easier consumption. If you are planning on processing the data with text manipulation tools, however, you probably want to be able to output to standard output. You can do this with the --no-pager option: This can be piped immediately into a processing utility or redirected into a file on disk, depending on your needs. Output Formats If you are processing journal entries, as mentioned above, you most likely will have an easier time parsing the data if it is in a more consumable format. Luckily, the journal can be displayed in a variety of formats as needed. You can do this using the - o option with a format specifier. For instance, you can output the journal entries in JSON by typing: This is useful for parsing with utilities. You could use the json-pretty format to get a better handle on the data structure before passing it off to the JSON consumer: The following formats can be used for display: cat . Displays only the message field itself. export . A binary format suitable for transferring or backing up. json . Standard JSON with one entry per line. json-pretty . JSON formatted for better human-readability json-sse . JSON formatted output wrapped to make add server-sent event compatible short . The default syslog style output short-iso . The default format augmented to show ISO 8601 wallclock timestamps. short-monotonic . The default format with monotonic timestamps. short-precise . The default format with microsecond precision verbose . Shows every journal field available for the entry, including those usually hidden internally. These options allow you to display the journal entries in the whatever format best suits your current needs. Active Process Monitoring The journalctl command imitates how many administrators use tail for monitoring active or recent activity. This functionality is built into journalctl. allowing you to access these features without having to pipe to another tool. Displaying Recent Logs To display a set amount of records, you can use the - n option, which works exactly as tail - n . By default, it will display the most recent 10 entries: You can specify the number of entries youd like to see with a number after the - n : Following Logs To actively follow the logs as they are being written, you can use the - f flag. Again, this works as you might expect if you have experience using tail - f : Journal Maintenance You may be wondering about the cost is of storing all of the data weve seen so far. Furthermore, you may be interesting in cleaning up some older logs and freeing up space. Finding Current Disk Usage You can find out the amount of space that the journal is currently occupying on disk by using the --disk-usage flag: Deleting Old Logs If you wish to shrink your journal, you can do that in two different ways (available with systemd version 218 and later). If you use the --vacuum-size option, you can shrink your journal by indicating a size. This will remove old entries until the total journal space taken up on disk is at the requested size: Another way that you can shrink the journal is providing a cutoff time with the --vacuum-time option. Any entries beyond that time are deleted. This allows you to keep the entries that have been created after a specific time. For instance, to keep entries from the last year, you can type: Limiting Journal Expansion You can configure your server to place limits on how much space the journal can take up. This can be done by editing the etcsystemdjournald. conf file. The following items can be used to limit the journal growth: SystemMaxUse . Specifies the maximum disk space that can be used by the journal in persistent storage. SystemKeepFree . Specifies the amount of space that the journal should leave free when adding journal entries to persistent storage. SystemMaxFileSize . Controls how large individual journal files can grow to in persistent storage before being rotated. RuntimeMaxUse . Specifies the maximum disk space that can be used in volatile storage (within the run filesystem). RuntimeKeepFree . Specifies the amount of space to be set aside for other uses when writing data to volatile storage (within the run filesystem). RuntimeMaxFileSize . Specifies the amount of space that an individual journal file can take up in volatile storage (within the run filesystem) before being rotated. By setting these values, you can control how journald consumes and preserves space on your server. Conclusion As you can see, the systemd journal is incredibly useful for collecting and managing your system and application data. Most of the flexibility comes from the extensive metadata automatically recorded and the centralized nature of the log. The journalctl command makes it easy to take advantage of the advanced features of the journal and to do extensive analysis and relational debugging of different application components. Almost there Report a Bug

Comments

Popular Posts