table of contents
| start-stop-daemon(8) | dpkg suite | start-stop-daemon(8) |
NAMN¶
start-stop-daemon - startar och stoppar bakgrundsprocesser
SYNOPS¶
start-stop-daemon [flagga...] åtgärd
BESKRIVNING¶
start-stop-daemon används för att styra hur processer på systemnivå skapas och avslutas. Med hjälp av en av sökflaggorna kan start-stop-daemon ställas in att hitta befintliga instanser av en körande process.
Observera: Om inte --pid eller --pidfile anges kommer start-stop-daemon att jobba på ett sätt som liknar killall(1). start-stop-daemon kommer att söka i processtabellen efter processer med motsvarande namn på processen, användar-id och/eller grupp-id (om sådant anges). Alla processer som stämmer överens kommer tillsändas signalen TERM (eller den som anges med --signal eller --retry) om --stop anges. För processer som har långlivade barn som måste överleva en --stop, måste du ange en pidfil.
KOMMANDON¶
- -S, --start [--] argument
- Se om en angiven process existerar, och om så är fallet gör start-stop-daemon ingenting och avslutar med status 1 (0 om --oknodo anges). Om en sådan process inte existerar startas en instans, antingen med programfilen som anges med --exec eller, om den anges, med --startas. Eventuella argument som ges efter -- på kommandoraden skickas utan ändring till programmet som startas.
- -K, --stop
- Testa om den angivna processen existerar. Om så är fallet sänder start-stop-daemon den signal som anges av --signal till processen, och avslutar med status 0. Om processen inte finns avslutar start-stop-daemon med status 1 (0 om --oknodo anges). Om --retry anges kommer start-stop-daemon kontrollera att processen har avslutats.
- -T, --status
- Check for the existence of a specified process, and returns an exit status
code, according to the LSB Init Script Actions
Supported since version 1.16.1.
- --pidof
- Check for the existence of specified processes, print their PIDs, and
returns an exist status just like --status.
Supported since version 1.23.8.
- -H, --help
- Visa hjälpskärm och avsluta.
- -V, --version
- Visa programversion och avsluta.
FLAGGOR¶
Matchingsflaggor¶
- --pid pid
- Check for a process with the specified pid. The pid must be
a number greater than 0.
Supported since version 1.17.6.
- --ppid ppid
- Check for a process with the specified parent pid ppid. The
ppid must be a number greater than 0.
Supported since version 1.17.7.
- -p, --pidfile pidfil
- Kontrollera om en process har skapat filen pidfil.
Observera: Om flaggan används på egen hand kan den orsaka att oönskade processer berörs, om den gamla processen avslutats utan att kunna ta bort pidfil.
Varning: Om flaggan används med en pidfil som kan skrivas av alla eller om den används ensam tillsammans med en serverprocess som skriver pidfilen som en icke-privilegierad användare (icke-root) kommer det att avvisas med ett felmeddelande (sedan version 1.19.3) eftersom det är en säkerhetsrisk, då antingen alla användare kan skriva filen, eller om serverprocessen komprometteras och inte innehållet i pidfilen inte är betrott, så kan en privilegiserad körprocess (till exempel ett init-skript som körs som root) kunna arbeta mot vilken som helst systemprocess. /dev/null är undantaget från dessa kontroller.
- -x, --exec programfil
- Se efter processer som är instanser av programfil. Flaggan
programfil bör vara en absolut sökväg.
Observera: Detta fungerar kanske inte som det ska för tolkade skript eftersom programfilen kommer peka på tolken. Notera att processer som körs inuti en chroot också kommer att träffas, så andra begränsningar kan behövas.
- -n, --name processnamn
- Se efter processer med namnet processnamn. Processnamn
är vanligtvis processens filnamn, men kan ha ändrats av
processen själv.
Observera: På de flesta system hämtas informationen från processens comm-namn från kärnan, vilket ofta har en relativt kort längdbegränsning (det är inte portablet att anta fler än 15 tecken).
- -u, --user användarnamn|användar-id
- Sök efter processer som ägs av den användare som
anges med användarnamn eller användar-id.
Observera: Om den här flaggan används på egen hand träffas alla processer som motsvarar användaren.
Generiska flaggor¶
- -g, --group grupp|grupp-id
- Byt till grupp eller grupp-id när processen startas.
- -s, --signal signal
- Tillsammans med --stop anger detta den signal som ska sändas till processen som stoppas (förval är TERM).
- -R, --retry tidsgräns|schema
- Tillsammans med --stop anger detta att start-stop-daemon ska
kontrollera att processen avslutas. Den testar flera gånger efter
matchande processer som körs, tills ingen längre finns kvar.
Om processerna inte avslutar kommer programmet utföra ytterligare
kommandon enligt schemat.
Om tidsgräns anges istället för schema kommer schemat signal/timeout/KILL/timeout att användas, där signal är den signal som anges med --signal.
schema är den lista med åtminstone två poster avdelade med snedstreck (/); varje post är antingen -signalnummer eller [-]signalnamn, vilket betyder att signalen ska sändas, eller timeout, vilket anger det antal sekunder programmet ska vänta på att processen avslutar, eller forever, vilket betyder att resten av schemat ska repetera för evigt om så behövs.
Om slutet på schemat nås och forever inte anges kommer start-stop-daemon avslutas med felkod 2. Om ett schema anges kommer eventuell signal angiven med --signal att ignoreras.
- -a, --startas sökväg
- Tillsammans med --start anger detta att processen som anges med sökväg ska startas. Om den inte anges används argumentet som gavs till --exec.
- -t, --test
- Skriver ut vad som skulle ha utförts och sätter returvärdet, men utför ingenting.
- -o, --oknodo
- Returnerar felstatus 0 i stället för 1 om ingen åtgärd utförs/skulle utförts.
- -q, --quiet
- Skriv inte informationsmeddelanden; visa endast felmeddelanden.
- -c, --chuid användarnamn|användar-id[:grupp|grupp-id]
- Byt till användarnamnet/användar-id:t innan processen startas. Du kan även ange en grupp genom att lägga till ett kolontecken, :, följt av gruppnamnet eller grupp-id på samma sätt som du skull gjort till kommandot chown(1) (användare:grupp). Om du anger en användare utan att ange en grupp kommer användarens primära grupp-id att användas. När du använder alternativet måste du ha i åtanke att även både primär- och tilläggsgrupp sätts, även om --group-flaggan inte anges. --group-flaggan är bara till för grupper som användaren normalt inte är en medlem i (t.ex för att lägga till gruppmedlemskap för enskilda processer för standardanvändare såsom nobody).
- -r, --chroot rot
- Change directory and chroot to root before starting the process. Note that the pidfile is also written after the chroot.
- -d, --chdir sökväg
- Byt katalog till sökväg innan processen startas. Detta görs efter byte av rot om -r|--chroot-flaggan anges. Om flaggan inte anges kommer start-stop-daemon byta till rotkatalogen innan processen startas.
- -b, --background
- Används typiskt med program som inte kopplar loss sig av sig
själva. Flaggan tvingar start-stop-daemon att
förgrena sig (fork) innan processen startar, och tvinga den grenen
att köra i bakgrunden.
Observera: Avslutningsstatus från ett sent icke väntat misslyckande under processinitieringen kan inte undersökas, emd mindre flaggan --notify-await används. Detta är avsett för program som det antingen inte är någon mening att förgrena på egen hand, eller där det inte är möjligt eller önskat att lägga till förgrenings- och notifieringskod för att de ska göra det på egen hand.
- --notify-await
- Wait for the background process to send a readiness notification before
considering the service started This option can only be used with
--background.
Detta implementar delar av systemd:s beredskapsprotokoll, så som det anges i manualsidan sd_notify(3). Följande variabler stöds:
- READY=1
- Programmet är redo att tillhandahålla sin tjänst, så vi kan avsluta på ett säkert sätt.
- EXTEND_TIMEOUT_USEC=antal
- Programmet ber om att utöka tidsgränsen med antal mikrosekunder. Detta kommer återställa den aktuella tidsgränsen till det angivna värdet.
- ERRNO=värde
- Programmet avslutar med en felkod. Gör detsamma och skriv ut den användarvänliga strängen för errno-värdet.
Supported since version 1.19.3.
- --notify-timeout tidsgräns
- Set a timeout for the --notify-await option. When the timeout is
reached, start-stop-daemon will exit with an error code, and no
readiness notification will be awaited. The default is 60 seconds.
Supported since version 1.19.3.
- -C, --no-close
- Do not close any file descriptor when forcing the daemon into the
background. Used for debugging purposes to see the process output, or to
redirect file descriptors to log the process output. Only relevant when
using --background.
Supported since version 1.16.5.
- -O, --output sökväg
- Redirect stdout and stderr to pathname when forcing
the daemon into the background. Only relevant when using
--background.
Supported since version 1.20.6.
- -N, --nicelevel heltal
- Ändrar prioriteten på processen innan den startas.
- -P, --procsched policy:prioritet
- This alters the process scheduler policy and priority of the process
before starting it. The priority can be optionally specified by appending
a : followed by the value. The default priority is 0. The
currently supported policy values are other, fifo and
rr.
Det är möjligt att flaggan inte gör något på system där POSIX-processschemaläggning inte stöds.
Supported since version 1.15.0.
- -I, --iosched klass:prioritet
- This alters the IO scheduler class and priority of the process before
starting it. The priority can be optionally specified by appending a
: followed by the value. The default priority is 4, unless
class is idle, then priority will always be 7. The
currently supported values for class are idle,
best-effort and real-time.
Det är möjligt att flaggan inte gör något på system där Linux-I/O-schemaläggning inte stöds.
Supported since version 1.15.0.
- -k, --umask maskvärde
- This sets the umask of the process before starting it.
Supported since version 1.13.22.
- -m, --make-pidfile
- Används när ett program som inte skapar sin egen pidfil
startas. Flaggan kommer att få start-stop-daemon att skapa
filen som anges med --pidfile och lägga process-id i den
precis innan processen startas. Observera att den endast kommer att tas
bort när programmet stoppas om --remove-pidfile
används.
Observera: Funktionen kanske inte alltid fungerar. Framförallt inte när programmet som startas förgrenar sig (fork) från sin huvudprocess. Därför är flaggan oftast bara användbar i samband med flaggan --background.
- --remove-pidfile
- Used when stopping a program that does not remove its own pid file. This
option will make start-stop-daemon remove the file referenced with
--pidfile after terminating the process.
Supported since version 1.17.19.
- -v, --verbose
- Skriv ut pratsamma informationsmeddelanden.
RETURVÄRDE¶
- 0
- Efterfrågad åtgärd utfördes. Om --oknodo angavs är det även möjligt att ingenting behövde utföras. Det kan hända när --start angavs och en motsvarande process redan körde, eller när --stop angavs och det inte fanns någon motsvarande process.
- 1
- Om --oknodo inte angavs och ingenting gjordes.
- 2
- Om --stop och --retry angavs, men slutet på tidtabellen nåddes och processen fortfarande kördes.
- 3
- Alla andra fel.
When using the --status or --pidof commands, the following status codes are returned:
- 0
- Programmet kör.
- 1
- Programmet kör inte och pid-filen finns.
- 3
- Programmet kör inte.
- 4
- Kan inte ta reda på programmets status.
EXEMPEL¶
Starta serverprocessen food, såvida inte en redan kör (en process med namnet food, som körs som användaren food, med process-id i food.pid):
start-stop-daemon --start --oknodo --user food --name food \ --pidfile /run/food.pid --startas /usr/sbin/food \ --chuid food -- --daemon
Sänd SIGTERM till food och vänta upp till fem sekunder på att den ska avslutas:
start-stop-daemon --stop --oknodo --user food --name food \ --pidfile /run/food.pid --retry 5
Demonstration av ett skräddarsytt schema för att avsluta food:
start-stop-daemon --stop --oknodo --user food --name food \ --pidfile /run/food.pid --retry=TERM/30/KILL/5
ÖVERSÄTTNING¶
Peter Krefting och Daniel Nylander.
| 2026-09-09 | 1.23.11 |