systemd-notify(1): Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '{{DISPLAYTITLE:systemd-notify(1)}} == NAMN == '''systemd-notify''' – notifiera servicehanteraren om slutförd uppstart och andra daemonstatusändringar == SYNOPSIS == <pre> systemd-notify [OPTIONS...] [VARIABLE=VALUE...] systemd-notify --exec [OPTIONS...] [VARIABLE=VALUE...] ; -- {CMDLINE...} systemd-notify --fork [OPTIONS...] -- {CMDLINE...} </pre> == BESKRIVNING == '''systemd-notify''' kan anropas av tjänsteskript för att notifiera den anropa...') |
Admin (diskussion | bidrag) |
||
| Rad 308: | Rad 308: | ||
Information om projektet finns på: | Information om projektet finns på: | ||
http://www.freedesktop.org/wiki/Software/systemd | http://www.freedesktop.org/wiki/Software/systemd | ||
Om du har en felrapport för denna manualsida, se: | Om du har en felrapport för denna manualsida, se: | ||
http://www.freedesktop.org/wiki/Software/systemd/#bugreports | http://www.freedesktop.org/wiki/Software/systemd/#bugreports | ||
Denna sida hämtades från projektets uppströms Git-förråd: | Denna sida hämtades från projektets uppströms Git-förråd: | ||
Nuvarande version från 25 augusti 2026 kl. 13.39
NAMN
systemd-notify – notifiera servicehanteraren om slutförd uppstart och andra daemonstatusändringar
SYNOPSIS
systemd-notify [OPTIONS...] [VARIABLE=VALUE...]
systemd-notify --exec [OPTIONS...] [VARIABLE=VALUE...] ; --
{CMDLINE...}
systemd-notify --fork [OPTIONS...] -- {CMDLINE...}
BESKRIVNING
systemd-notify kan anropas av tjänsteskript för att notifiera den anropande servicehanteraren om statusändringar.
Det kan användas för att skicka godtycklig information, kodad i en lista av strängar som liknar ett miljöblock.
Viktigast är att det kan användas för notifiering om slutförd uppstart.
Detta är i huvudsak bara ett omslag runt sd_notify() och gör denna funktionalitet tillgänglig för skalskript.
För detaljer, se sd_notify(3).
Kommandoraden kan bära en lista med miljövariabler som ska skickas som del av statusuppdateringen.
Observera att systemd vägrar ta emot statusuppdateringar från detta kommando om inte NotifyAccess= är lämpligt satt för service-unit:en som kommandot anropas från.
Se systemd.service(5) för detaljer.
Observera att sd_notify()-notifieringar endast kan tillskrivas units korrekt om antingen den sändande processen fortfarande finns kvar när servicehanteraren behandlar meddelandet, eller om den sändande processen uttryckligen runtime-spåras av servicehanteraren.
Det senare är fallet om servicehanteraren ursprungligen forkade processen, det vill säga för alla processer som matchar NotifyAccess='main eller NotifyAccess='exec.
Omvänt gäller att om en hjälpprocess till unit:en skickar ett sd_notify()-meddelande och omedelbart avslutar, kanske servicehanteraren inte kan tillskriva meddelandet korrekt till unit:en och ignorerar det därför, även om NotifyAccess='all är satt för den.
För att hantera detta väntar systemd-notify tills notifieringsmeddelandet har behandlats av servicehanteraren.
När --no-block används inaktiveras denna synkronisering för mottagning av notifieringar, och därför kan ovan nämnda race inträffa om den anropande processen inte är servicehanteraren eller skapad av servicehanteraren.
systemd-notify försöker först anropa sd_notify() och låtsas ha PID för föräldraprocessen till systemd-notify, det vill säga den anropande processen.
Detta lyckas endast när det anropas med tillräckliga privilegier.
Vid misslyckande faller det sedan tillbaka till att anropa det under sitt eget PID.
Detta beteende är användbart för att när verktyget anropas från ett skalskript ska skalprocessen, och inte systemd-notify-processen, visas som avsändare av meddelandet. Detta är i sin tur användbart om skalprocessen är huvudprocessen för en tjänst, på grund av begränsningarna hos NotifyAccess='all.
Använd växeln --pid= för att justera detta beteende.
OPTIONER
Följande optioner förstås:
--ready
- Informera den anropande servicehanteraren om slutförd tjänsteuppstart eller slutförd konfigurationsomladdning.
- Detta motsvarar:
systemd-notify READY=1
- För detaljer om semantiken för denna option, se sd_notify(3).
--reloading
- Informera den anropande servicehanteraren om början på en konfigurationsomladdningscykel.
- Detta motsvarar:
systemd-notify RELOADING=1
- men sätter implicit också ett MONOTONIC_USEC=-fält som krävs för tjänster med Type=notify-reload. Se systemd.service(5) för detaljer.
- För detaljer om semantiken för denna option, se sd_notify(3).
- Tillagt i version 253.
--stopping
- Informera den anropande servicehanteraren om början på tjänstens nedstängningsfas.
- Detta motsvarar:
systemd-notify STOPPING=1
- För detaljer om semantiken för denna option, se sd_notify(3).
- Tillagt i version 253.
--pid=
- Informera servicehanteraren om tjänstens huvud-PID.
- Tar ett PID som argument.
- Om argumentet anges som "auto" eller utelämnas används PID för processen som anropade systemd-notify, utom om det är servicehanteraren.
- Om argumentet anges som "self" används PID för själva kommandot systemd-notify, och om "parent" anges används den anropande processens PID, även om den är servicehanteraren.
- --pid=auto motsvarar:
systemd-notify --pid=$PID
- För detaljer om semantiken för denna option, se sd_notify(3).
- systemd-notify försöker först anropa sd_notify() och låtsas ha PID som anges med --pid=.
- Detta lyckas endast när det anropas med tillräckliga privilegier.
- Vid misslyckande faller det sedan tillbaka till att anropa det under sitt eget PID.
- I praktiken innebär detta att ett privilegierat anrop av systemd-notify --pid= kan kringgå begränsningar med NotifyAccess=main eller NotifyAccess=exec som tillämpas för en tjänst.
- Om denna växel används i ett oprivilegierat systemd-notify-anrop från en process som ska bli den nya huvudprocessen för en tjänst, och som inte är processen som forkats av servicehanteraren eller den aktuella huvudprocessen, är det nödvändigt att sätta NotifyAccess=all i service-unit-filen. Annars ignoreras notifieringen av säkerhetsskäl.
- Se systemd.service(5) för detaljer.
--uid=USER
- Sätt användar-ID att skicka notifieringen från.
- Tar ett UNIX-användarnamn eller numeriskt UID.
- När det anges skickas notifieringsmeddelandet med angiven UID som avsändare, i stället för användaren som kommandot anropades som.
- Denna option kräver tillräckliga privilegier för att kunna manipulera processens användaridentitet.
- Tillagt i version 237.
--status=
- Skicka en fritextstatussträng som är läsbar för människor för daemonen till servicehanteraren.
- Denna option tar statussträngen som argument.
- Detta motsvarar:
systemd-notify STATUS=...
- För detaljer om semantiken för denna option, se sd_notify(3).
- Denna information visas bland annat i utdata från kommandot status i systemctl(1).
--booted
- Returnerar 0 om systemet startades upp med systemd, annars icke-noll.
- Om denna option skickas sänds inget meddelande.
- Denna option är därför orelaterad till de andra optionerna.
- För detaljer om semantiken för denna option, se sd_booted(3).
- Ett alternativt sätt att kontrollera detta tillstånd är att anropa systemctl(1) med kommandot is-system-running.
- Det skriver ut "offline" om systemet inte startades med systemd, även om returvärdet har annan betydelse.
--no-block
- Vänta inte synkront på att den begärda operationen ska slutföras.
- Användning av denna option rekommenderas endast när systemd-notify skapas av servicehanteraren, eller när den anropande processen är direkt skapad av servicehanteraren och har tillräckliga privilegier för att låta systemd-notify skicka notifieringen å dess vägnar.
- Att skicka notifieringar med denna option satt är utsatt för race conditions i alla andra fall.
- Tillagt i version 246.
--exec
- Om angiven kör systemd-notify en annan kommandorad efter att operationen slutförts, och ersätter sin egen process.
- Om den används måste listan av tilldelningar att inkludera i meddelandet som skickas följas av ett ";"-tecken, som separat argument, följt av kommandoraden som ska köras.
- Detta tillåter "kedjning" av kommandon, det vill säga att utföra en operation och omedelbart därefter en annan utan att ändra PID.
- Observera att många skal tolkar ";" som sin egen separator för kommandorader. När systemd-notify anropas från ett skal måste semikolonet därför vanligen escap:as som "\;".
- Tillagt i version 254.
--fd=
- Skicka en filbeskrivare tillsammans med notifieringsmeddelandet.
- Detta är användbart när det anropas i tjänster som har inställningen FileDescriptorStoreMax= aktiverad. Se systemd.service(5) för detaljer.
- Den angivna filbeskrivaren måste skickas till systemd-notify när det anropas.
- Denna option kan användas flera gånger för att skicka flera filbeskrivare i ett enda notifieringsmeddelande.
- För att använda denna funktionalitet från ett bash(1)-skal, använd ett uttryck som följande:
systemd-notify --fd=4 --fd=5 4</some/file 5</some/other/file
- Tillagt i version 254.
--fdname=
- Sätt ett namn att tilldela filbeskrivarna som skickas via --fd=, se ovan.
- Detta styr fältet "FDNAME=".
- Denna inställning får endast anges en gång och gäller alla filbeskrivare som skickas.
- Anropa detta verktyg flera gånger om flera filbeskrivare med olika filbeskrivarnamn ska skickas.
- Tillagt i version 254.
--fork
- I stället för att skicka ett notifieringsmeddelande, forka av en kommandorad och vänta tills ett "READY=1"-meddelande tas emot från den.
- Med andra ord gör detta systemd-notify till mottagare av notifieringsmeddelanden i stället för avsändare, och byter roller.
- Detta är användbart för att snabbt forka av en process som implementerar sd_notify()-protokollet från ett skalskript.
- Den anropade kommandoraden får standardindata och standardutdata anslutna till /dev/null, men standardfel ärvs från den anropande processen.
- Det numeriska process-ID:t skrivs till standardutdata av systemd-notify, om inte --quiet anges, vilket kan användas för att senare avsluta den avforkade processen.
- Observera att processer som forkas av på detta sätt sannolikt förblir körande efter att systemd-notify redan har returnerat, vilket därför leder till att de adopteras av närmaste process reaper-process, det vill säga typiskt per-användar- eller systemservicehanteraren.
- Observera att denna option inte bör användas för att anropa fullständiga tjänster ad hoc; använd systemd-run för det.
- Observera också att när systemd-notify anropas med denna växel avslutas det framgångsrikt under två olika villkor:
- systemd-notify tog emot en "READY=1"-notifiering från barnet som det just forkade av.
- Barnprocessen avslutade rent, med avslutningsstatus noll, innan den skickade "READY=1".
- Exempelanvändning:
# PID=$(systemd-notify --fork -- mycommand) ... kill "$PID" unset PID
- Tillagt i version 258.
--quiet, -q
- Stäng av utdata av numeriskt process-ID när --fork används.
- Tillagt i version 258.
-h, --help
- Skriv ut en kort hjälptext och avsluta.
--version
- Skriv ut en kort versionssträng och avsluta.
AVSLUTNINGSSTATUS
Vid framgång returneras 0, annars en icke-noll felkod.
EXEMPEL
Exempel 1. Uppstartsnotifiering och statusuppdateringar
En enkel skaldaemon som skickar uppstartsnotifieringar efter att ha satt upp sin kommunikationskanal.
Under körning skickar den ytterligare statusuppdateringar till init-systemet:
#!/bin/sh
mkfifo /tmp/waldo
systemd-notify --ready --status="Waiting for data..."
while : ; do
read -r a < /tmp/waldo
systemd-notify --status="Processing $a"
# Do something with $a ...
systemd-notify --status="Waiting for data..."
done
SE ÄVEN
systemd(1), systemctl(1), systemd.unit(5), systemd.service(5), sd_notify(3), sd_booted(3)
KOLOFON
Denna sida är en del av projektet systemd, systemd system and service manager.
Information om projektet finns på:
http://www.freedesktop.org/wiki/Software/systemd
Om du har en felrapport för denna manualsida, se:
http://www.freedesktop.org/wiki/Software/systemd/#bugreports
Denna sida hämtades från projektets uppströms Git-förråd:
https://github.com/systemd/systemd.git
den 24 maj 2026.
Vid den tidpunkten var datumet för den senaste commit som hittades i förrådet 24 maj 2026.
Om du upptäcker renderingsproblem i denna HTML-version av sidan, eller om du anser att det finns en bättre eller mer aktuell källa för sidan, eller om du har rättelser eller förbättringar av informationen i denna KOLOFON, som inte är en del av den ursprungliga manualsidan, skicka e-post till:
man-pages@man7.org
systemd 261~rc1 SYSTEMD-NOTIFY(1)
Sidslut
Orginalhemsidan på Engelska https://man7.org/linux/man-pages/man1/systemd-notify.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/
Tack till Datorservice som har sponsrat Linux.se med webbhotell.