SYSTEMD

中文man手册

SYSTEMD

NAME
SYNOPSIS
æè¿°
é项
æ¦å¿µ
ç®å½
ä¿¡å·
ç¯å¢åé
åæ ¸å¼å¯¼é项
SOCKETS ä¸ FIFOS
åè§
NOTES
è·

NAME

systemd, init - systemd ç³»ç»ä¸æå¡ç®¡çå¨

SYNOPSIS

systemd [OPTIONS...]

init [OPTIONS...] {COMMAND}

æè¿°

systemd æ¯ä¸ä¸ªä¸ç¨äº Linux æä½ç³»ç»çç³»ç»ä¸æå¡ç®¡çå¨ã å½ä½ä¸ºå¯å¨è¿ç¨(PID=1)è¿è¡æ¶ï¼å®å°ä½ä¸ºåå§åç³»ç»è¿è¡ï¼ ä¹å°±æ¯å¯å¨å¹¶ç»´æ¤åç§ç¨æ·ç©ºé´çæå¡ã

为äºä¸ä¼ ç»ç SysV å¼å®¹ï¼å¦æå° systemd 以 init åç§°å¯å¨ï¼å¹¶ä¸"PIDâ 1"ï¼é£ä¹å®å°æ§è¡ telinit å½ä»¤å¹¶å°ææå½ä»¤è¡åæ°åå°ä¸å¨çä¼ éè¿å»ã è¿æ ·å¯¹äºæ®éçç»éä¼è¯æ¥è¯´ï¼æ è®ºæ¯è°ç¨ init è¿æ¯è°ç¨ telinit 齿¯ç- ä»·çã è¯¦è§ telinit(8) æåã

å½ä½ä¸ºç³»ç»å®ä¾è¿è¡æ¶ï¼ systemd å°ä¼æç§ system.conf éç½®æä»¶ 以å system.conf.d éç½®ç®å½ä¸çæä»¤å·¥ä½ï¼ å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼systemd å°ä¼æç§ user.conf éç½®æä»¶ 以å user.conf.d éç½®ç®å½ä¸çæä»¤å·¥ä½ãè¯¦è§ systemd-system.conf(5) æåã

é项

è½å¤è¯å«çå½ä»¤è¡é项å¦ä¸ï¼

--test

æ£æµå¹¶è¾åºå¯å¨åºåï¼ç¶åéåºã ä»ç¨äºè°è¯ç®çã

--dump-configuration-items

è¾åºä¸ä¸ªåå(unit)åè¡¨ã æ¤åè¡¨ç®æä¸å®æ´çååºäº ææååæä»¶ä¸å®ä¹ç"unit"ã

--unit=

设置å¯å¨æ¶é»è®¤å¯å¨çåå(unit)ã é»è®¤å¼æ¯ default.target

--system, --user

--system 表示强å¶ä½ä¸ºç³»ç»å®ä¾è¿è¡(å³ä½¿"PIDâ 1")ï¼ --user 表示强å¶ä½ä¸ºç¨æ·å®ä¾è¿è¡(å³ä½¿"PID=1")ã é常ä¸åºè¯¥ä½¿ç¨æ¤éé¡¹ã æ¤é项ä»ç¨äºè°è¯ç®çï¼ èä¸ --system ä»å¨ä¸ --test ä¸èµ·ä½¿ç¨æ¶ææå®éæä¹ã

--dump-core

å¨å´©æºæ¶è¿è¡å核转å¨ã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ¤é项没æå®éæä¹ã æ- ¤é项è¿å¯ä»¥éè¿åæ ¸å¼å¯¼é项 systemd.dump_core= å¼å¯ (åè§"åæ ¸å¼å¯¼é项"å°è)ã

--crash-vt=VT

å¨å´©æºæ¶åæ¢å°æå®çèææ§å¶å°(VT)ã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ- ¤é项没æå®éæä¹ã å¯ä»¥è®¾ä¸ºä¸ä¸ª 1–63 ä¹é´çæ´æ°æå¸å°å¼ã è¥è®¾ä¸ºæ´æ°å忢尿å®ç¼å·çèææ§å¶å°ï¼ è¥è®¾ä¸º yes å表示使ç¨åæ ¸æ¶æ¯æä½¿ç¨çèææ§å¶å°ï¼ è¥è®¾ä¸º no å表示ä¸åæ¢å°ä»»ä½èææ§å¶å°ã æ¤é项è¿å¯ä»¥éè¿åæ ¸å¼å¯¼é项 systemd.crash_vt= 设置 (åè§"åæ ¸å¼å¯¼é项"å°è)ã

--crash-shell

å¨å´©æºæ¶å¯å¨ä¸ä¸ª shell ã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ¤é项没æå®éæä¹ã æ¤é项è¿å¯ä»¥éè¿åæ ¸å¼å¯¼é项 systemd.crash_shell= å¼å¯ (åè§"åæ ¸å¼å¯¼é项"å°è)ã

--crash-reboot

å¨å´©æºæ¶èªå¨éå¯ç³»ç»ã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ¤é项没æå®éæä¹ã æ- ¤é项è¿å¯ä»¥éè¿åæ ¸å¼å¯¼é项 systemd.crash_reboot= å¼å¯ (åè§"åæ ¸å¼å¯¼é项"å°è)ã

--confirm-spawn

卿´¾çæ°è¿ç¨æ¶è¿è¡ç¡®è®¤æç¤ºã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ- ¤é项没æå®éæä¹ã

--show-status=

å¨ç³»ç»å¯å¨è¿ç¨ä¸æ¾ç¤ºç®æçæå¡ç¶æä¿¡æ¯ã å½ä½ä¸ºç¨æ·å®ä¾è¿è¡æ¶ï¼æ- ¤é项没æå®éæä¹ã å¶åæ°å¿é¡»æ¯ä¸ä¸ªè¡¨ç¤ºçåçå¸å°å¼ï¼ å¦ææªæå®åç¸å½äºè®¾ä¸º yes

--log-target=

设置æ¥å¿çç®æ ï¼å¶åæ°å¿é¡»æ¯ console, journal, kmsg, journal-or-kmsg, null ä¹ä¸(å°å)ã

--log-level=

设置æ¥å¿çççº§ï¼ å¶åæ°å¿é¡»æ¯ä¸ä¸ªæ°åæè 符å syslog(3) ä¹ æ¯ç emerg, alert, crit, err, warning, notice, info, debug ä¹ä¸(å°å)ã

--log-color=

é«äº®éè¦çæ¥å¿ä¿¡æ¯ï¼å¶åæ°å¿é¡»æ¯ä¸ä¸ªè¡¨ç¤ºçåçå¸å°å¼ï¼ è¥æªæå®åç¸å½äºè®¾ä¸º yes

--log-location=

卿¥å¿ä¸åå«ä»£ç çä½ç½®ï¼ å¶åæ°å¿é¡»æ¯ä¸ä¸ªè¡¨ç¤ºçåçå¸å°å¼ï¼ è¥æªæå®åç¸å½äºè®¾ä¸º yes ãä»ç¨äºè°è¯ç®çã

--default-standard-output=, --default-standard-error=

为ææç service ä¸ socket 设置é»è®¤çæ åè¾åºä¸æ åéè¯¯ï¼ ç¸å½äºè®¾ç½® StandardOutput= ä¸ StandardError= æä»¤çå¼(åè§ systemd.exec(5) æå)ãå¶åæ°å¿é¡»æ¯ inherit, null, tty, journal, journal+console, syslog, syslog+console, kmsg, kmsg+console ä¹ä¸(å°å)ã --default-standard-output= çé»è®¤å¼æ¯ journal ï¼è --default-standard-error= çé»è®¤å¼æ¯ inherit

--machine-id=

è¦çæä»¶ç³»ç»ä¸ç machine-id è®¾ç½®ï¼ å¸¸ç¨äºç½ç»å¯å¨æå®¹å¨ã ç¦æ- ¢è®¾ä¸ºå¨é¶çå¼ã

-h, --help

æ¾ç¤ºç®çç帮å©ä¿¡æ¯å¹¶éåºã

--version

æ¾ç¤ºç®çççæ¬ä¿¡æ¯å¹¶éåºã

æ¦å¿µ

systemd å°åç§ç³»ç»å¯å¨åè¿è¡ç¸å³çå¯¹è±¡ï¼ è¡¨ç¤ºä¸ºåç§ä¸åç±»åçåå(unit)ï¼ å¹¶æä¾äºå¤çä¸åååä¹é´ä¾èµå³ç³»çè½åã 大é¨åååé½éæçå®ä¹å¨ååæä»¶ä¸ (åè§ systemd.unit(5) æå)ï¼ ä½æ¯æå°é¨ååå忝卿èªå¨çæçï¼ å¶ä¸- ä¸é¨åæ¥èªäºå¶ä»ä¼ ç»çéç½®æä»¶(为äºå¼å®¹æ§)ï¼ èå¦ä¸é¨ååå¨æçæ¥èªäºç³»ç»ç¶ææå¯ç¼ç¨çè¿è¡æ¶ç¶æã å忢å¯ä»¥å¤äºæ´»å¨(active)ç¶æä¹å¯ä»¥å¤äºåæ¢(inactive)ç¶æï¼ å½ç¶ä¹å¯ä»¥å¤äºå¯å¨ä¸(activating)æåæ¢ä¸(deactivating)çç¶æã è¿æä¸ä¸ªç¹æ®ç失败(failed)ç¶æï¼ æææ¯åå以æç§æ¹å¼å¤±è´¥äº (è¿ç¨å´©æºäºãæè触碰å¯å¨é¢çéå¶ãæèéåºæ¶è¿åäºé误代ç ãæèéå°äºæä½è¶æ¶ä¹ç±»çæé)ã å½è¿å¥å¤±è´¥(failed)ç¶ææ¶ï¼ å¯¼è´æéçåå å°è¢«è®°å½å°æ¥å¿ä¸- 以æ¹ä¾¿æ¥åææ¥ã éè¦æ³¨æçæ¯ï¼ ä¸åçååå¯è½è¿ä¼æåèªä¸åç"åç¶æ"ï¼ ä½å®ä»¬é½è¢«æ å°å°ä¸è¿°äºç§ç¶æä¹ä¸ã

åç§ä¸åçååç±»åå¦ä¸ï¼

1. service ååãç¨äºå°è£ä¸ä¸ªåå°æå¡è¿ç¨ã åè§ systemd.service(5) æåã

2. socket ååã ç¨äºå°è£ä¸ä¸ªç³»ç»å¥æ¥å(UNIX)æäºèç½å¥æ¥å- (INET/INET6)æFIFO管éã ç¸åºçæå¡å¨ç¬¬ä¸ä¸ª"è¿æ¥"è¿å¥å¥æ¥å- æ¶æä¼è¢«å¯å¨ã æå³å¥æ¥åååç详æï¼åè§ systemd.socket(5) æåï¼æå³åºäºå¥æ¥åæå¶ä»æ¹å¼çå¯å¨ï¼åè§ daemon(7) æåã

3. target ååã ç¨äºå°å¤ä¸ªååå¨é»è¾ä¸ç»åå¨ä¸èµ·ãåè§ systemd.target(5) æåã

4. device ååãç¨äºå°è£ä¸ä¸ªè®¾å¤æä»¶ï¼å¯ç¨äºåºäºè®¾å¤çå¯å¨ã 并鿝ä¸ä¸ªè®¾å¤æä»¶é½éè¦ä¸ä¸ª device ååï¼ ä½æ¯æ¯ä¸ä¸ªè¢« udev è§åæ è®°ç设å¤é½å¿é¡»ä½ä¸ºä¸ä¸ª device åååºç°ãåè§ systemd.device(5) æåã

5. mount ååã ç¨äºå°è£ä¸ä¸ªæä»¶ç³»ç»æè½½ç¹(ä¹ååå¼å®¹ä¼ ç»ç /etc/fstab æä»¶)ãåè§ systemd.mount(5) æåã

6. automount ååã ç¨äºå°è£ä¸ä¸ªæä»¶ç³»ç»èªå¨æè½½ç¹ï¼ä¹å°±æ¯ä»å¨æè½½ç¹ç¡®å®è¢«è®¿é®çæåµä¸æè¿è¡æè½½ã å®å代äºä¼ ç»ç autofs æå¡ãåè§ systemd.automount(5) æåã

7. timer ååã ç¨äºå°è£ä¸ä¸ªåºäºæ¶é´è§¦åçå¨ä½ãå®å代äºä¼ ç»ç atd, crond çä»»å¡è®¡åæå¡ãåè§ systemd.timer(5) æåã

8. swap ååã ç¨äºå°è£ä¸ä¸ªäº¤æ¢ååºæèäº¤æ¢æä»¶ã å®ä¸ mount ååé常类似ãåè§ systemd.swap(5) æåã

9. path ååã ç¨äºæ ¹æ®æä»¶ç³»ç»ä¸ç¹å®å¯¹è±¡çå忥å¯å¨å¶ä»æå¡ãåè§ systemd.path(5) æåã

10. slice ååã ç¨äºæ§å¶ç¹å® CGroup å(ä¾å¦ä¸ç» service ä¸ scope åå)ææè¿ç¨çæ»ä½èµæºå ç¨ã åè§ systemd.slice(5) æåã

11. scope ååãå®ä¸ service åå类似ï¼ä½æ¯ç± systemd æ ¹æ® D-bus æ¥å£æ¥æ¶å°çä¿¡æ¯èªå¨åå»ºï¼ å¯ç¨äºç®¡çå¤é¨å建çè¿ç¨ãåè§ systemd.scope(5) æåã

ååçåç§°ç±ååæä»¶çåç§°å³å®ï¼ æäºç¹å®çåååç§°å·æç¹æ®çå«ä¹ï¼è¯¦æåè§ systemd.special(7) æåã

systemd è½å¤å¤çåç§ç±»åçä¾èµå³ç³»ï¼ 忬ä¾èµä¸å²çª(ä¹å°±æ¯ Requires= ä¸ Conflicts= æä»¤)ï¼ ä»¥ååå顺åº(ä¹å°±æ¯ After= ä¸ Before= æä»¤)ã æ³¨æï¼ ä¸è¿°ä¸¤ç§ç±»åçä¾èµå³ç³»(ä¾èµä¸å²çªãåå顺åº)ä¹é´æ¯ç¸äºç¬ç«ç(æ å³ç)ã 䏾便¥è¯´ï¼åå® foo.service ä¾èµäº(Requires) bar.service ä½å¹¶æªæå®åå顺åºï¼ é£ä¹è¿ä¸¤ä¸ªæå¡å°è¢«åæ¶å¹¶è¡å¯å¨ã ä¸è¿å¨ä¸¤ä¸ªååä¹é´æ¢åå¨ä¾èµå³ç³»ä¹åå¨åå顺åºçæå½¢ä¹å¾å¸¸è§ã å¦å¤éè¦æ³¨æçæ¯ï¼ 大夿°ä¾èµå³ç³»é½æ¯ç± systemd éå¼å建åç»´æ¤çï¼ å æ- ¤æ²¡æå¿è¦é¢å¤æå¨å建å®ä»¬ã

åºç¨ç¨åºååå(éè¿ä¾èµå³ç³»)å¯è½ä¼æ¥è¯¢å¶ä»ååçç¶æååã å¨ systemd ä¸ï¼ è¿ç§æ¥è¯¢è¢«åè£ä¸º"ä»»å¡"(job)并被ä½ä¸º"ä»»å¡éå"è¿è¡ç®¡çã ä»»å¡çæ§è¡ç»æå¯è½æåä¹å¯è½å¤±è´¥ï¼ 使¯ä»»å¡çæ§è¡é¡ºåºæ¯ä¾ç§ä»»å¡æå±ååä¹é´çåå顺åºç¡®å®çã

å¨ç³»ç»å¯å¨æ¶ï¼systemd é»è®¤å¯å¨ default.target ååï¼ è¯¥ååä¸- åºè¯¥å嫿æä½ æ³å¨å¼æºæ¶é»è®¤å¯å¨çååã ä½å®éä¸ï¼å®éå¸¸åªæ¯ä¸ä¸ªæå graphical.target (å¾å½¢çé¢) æ multi-user.target (å½ä»¤è¡çé¢ï¼å¸¸ç¨äºåµå¥å¼ææå¡å¨ç¯å¢ï¼ ä¸è¬æ¯ graphical.target çä¸ä¸ªå- é)ç符å·è¿æ¥ã è¯¦è§ systemd.special(7) æåã

systemd ä¾èµäºåæ ¸æä¾ç cgroups [1] ç¹æ§æ§å¶è¿ç¨çæ´¾çï¼ ä»èç¡®ä¿å¯ä»¥è¿½è¸ªå°ææåè¿ç¨ã cgroups ä¿¡æ¯ç±åæ ¸è´è´£ç»´æ¤ï¼ å¹¶ä¸å¯ä»¥éè¿ /sys/fs/cgroup/systemd/ æ¥å£è¿è¡è®¿é®ãæ¤å¤ï¼è¿å¯ä»¥éè¿ systemd-cgls(1) æ ps(1) ä¹ç±»çå·¥å·è¿è¡æ¥ç (ps xawf -eo pid,user,cgroup,args)

systemd å ä¹å®å¨å¼å®¹ä¼ ç»ç SysV init ç³»ç»ï¼ SysV init èæ¬å¯ä»¥ä½ä¸ºå¦ä¸ç§éç½®æä»¶æ ¼å¼è¢«è¯å«ï¼ æä¾ä¸ SysV å¼å®¹ç /dev/initctl æ¥å£ï¼ æä¾åç§ SysV å·¥å·çå¼å®¹å®ç°ï¼ ä¾ç¶å¼å®¹ä¾å¦ /etc/fstab æè utmp ä¹ç±»ä¼ ç»ç Unix ç¹æ§ã

systemd è¿æä¸ä¸ªå°åçäºå¡ç³»ç»ï¼ 妿è¦å¯å¨æå³éä¸ä¸ªååï¼ é£ä¹è¯¥ååæä¾èµç ææå¶ä»ååé½ä¼è¢«ä¸èµ·å å¥å°åä¸ä¸ªä¸´æ¶äºå¡ä¸ã è¿æ ·ï¼å°±å¯ä»¥æ ¡éªæ´ä¸ªäºå¡çä¸è´æ§ï¼ ä¹å°±æ¯æ£æ¥æ¯å¦åå¨å¾ªç¯ä¾èµã 妿åå¨å¾ªç¯ä¾èµï¼ é£ä¹ systemd å°ä¼å°è¯éè¿ å»æå¼±ä¾èµ(want)æ¥è§£å³è¿ä¸ªé®é¢ï¼ 妿æç»å®å¨æ æ³è§£å³å¾ªç¯ä¾èµçé®é¢ï¼ é£ä¹ systemd å°ä¼æ¥éã

systemd åç½®äºè®¸å¤ç³»ç»å¯å¨è¿ç¨ä¸å¿éçæä½ï¼ ä¾å¦ï¼è®¾ç½® hostname 以åéç½® loopback ç½ç»è®¾å¤ï¼ 以åæè½½ /sys å /proc æä»¶ç³»ç»ã

å¨ç³»ç»å¯å¨æèæ§è¡ systemctl reload ... æ¶ï¼ systemd å¯ä»¥æ ¹æ®å¶ä»éç½®æä»¶æèåæ ¸å¼å¯¼é项卿çæååï¼åè§ systemd.generator(7) æåã

妿è¦ä»å®¹å¨ä¸è°ç¨ systemd é£ä¹å¿é¡»éµå® Container Interface [2] è§èã 妿è¦ä» initrd ä¸è°ç¨ systemd é£ä¹å¿é¡»éµå® initrd Interface [3] è§èã

ç®å½

ç³»ç»ååç®å½

systemd ä¼ä»å¤ä¸ªä¼å级ä¸åçç³»ç»ååç®å½ä¸è¯»åç³»ç»ååï¼ è½¯ä»¶ååºè¯¥å°ç³»ç»ååæä»¶å®è£å¨ pkg-config systemd --variable=systemdsystemunitdir å½ä»¤æè¿åçç³»ç»ååç®å½ä¸(éå¸¸æ¯ /usr/lib/systemd/system)ã æ¤å¤ï¼ systemd è¿ä¼è¯»åä¼å级è¾é«ç /usr/local/lib/systemd/system ç®å½ä»¥åä¼å级è¾ä½ç /usr/lib/systemd/system ç®å½ä¸çç³»ç»ååæä»¶ã ä¼å级æé«çç³»ç»ååç®å½æ¯ pkg-config systemd --variable=systemdsystemconfdir å½ä»¤æè¿åçç®å½(éå¸¸æ¯ /etc/systemd/system)ã æ³¨æï¼è½¯ä»¶ååºè¯¥ä»ä½¿ç¨ systemctl(1) ç enable ä¸ disable å½ä»¤ä¿®æ¹ä¸è¿°ç®å½ä¸çå容ã 宿´çç®å½å表åè§ systemd.unit(5) æåã

ç¨æ·ååç®å½

ç¨æ·ååç®å½æéµå®çè§åä¸ç³»ç»ååç®å½ç±»ä¼¼ï¼ 软件ååºè¯¥å°ç¨æ·ååæä»¶å®è£å¨ pkg-config systemd --variable=systemduserunitdir å½ä»¤æè¿åçç¨æ·ååç®å½ä¸- (é常æ¯/usr/lib/systemd/user)ã æ¤å¤ï¼å ä¸ºç¨æ·ååç®å½è¿éµå® XDG Base Directory specification [4] è§èï¼ æä»¥ systemd è¿ä¼è¯»å $XDG_DATA_HOME/systemd/user(ä»å¨å·²è®¾ç½® $XDG_DATA_HOME çæåµä¸) æ ˜/.local/share/systemd/user(ä»å¨æªè®¾ç½® $XDG_DATA_HOME çæåµä¸) ç®å½ä¸çç¨æ·ååã å¨å±ç¨æ·ååç®å½(é对ææç¨æ·)æ¯ pkg-config systemd --variable=systemduserconfdir å½ä»¤æè¿åçç®å½(é常æ¯/etc/systemd/user)ã æ³¨æï¼è½¯ä»¶ååºè¯¥ä»ä½¿ç¨ systemctl(1) ç enable ä¸ disable å½ä»¤ä¿®æ¹ä¸è¿°ç®å½ä¸çåå®¹ã æ è®ºè¿ç§ä¿®æ¹æ¯å¨å±ç(é对ææç¨æ·)ãè¿æ¯ç§æç(é对åä¸ªç¨æ·)ã 宿´çç®å½å表åè§ systemd.unit(5) æåã

SysVå¯å¨èæ¬ç®å½(ä¸ååè¡çä¹é´å·®å«å¯è½å¾å¤§)

妿 systemd æ¾ä¸å°æå®æå¡æå¯¹åºçååæä»¶ï¼ é£ä¹å°±ä¼å°SysVå¯å¨èæ¬ç®å½ä¸ å»å¯»æ¾ååèæ¬(廿 .service åç¼)ã

SysVè¿è¡çº§ç®å½(ä¸ååè¡çä¹é´å·®å«å¯è½å¾å¤§)

systemd å¨å³å®æ¯å¦å¯ç¨ä¸ä¸ªæå¡çæ¶åï¼ ä¼åç§SysVè¿è¡çº§ç®å½å¯¹è¯¥æå¡çè®¾ç½®ã æ³¨æï¼ è¿ä¸ªè§åä¸éç¨äºé£äºå·²ç»æ¥æåçååæä»¶çæå¡ã

ä¿¡å·

SIGTERM

systemd ç³»ç»å®ä¾å°ä¼ä¿åå¶å½åç¶æï¼ ç¶åéæ°æ§è¡å®èªèº«ï¼åæ¢å¤å°ååä¿å- çç¶æã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl daemon-reexec å½ä»¤ã

systemd ç¨æ·å®ä¾å°ä¼å¯å¨ exit.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl --user start exit.target å½ä»¤ã

SIGINT

systemd ç³»ç»å®ä¾å°ä¼å¯å¨ ctrl-alt-del.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start ctl-alt-del.target å½ä»¤ã 卿§å¶å°ä¸æ Ctrl-Alt-Del ç»åé®å³å¯è§¦åè¿ä¸ªä¿¡å·ã 使¯ï¼å¦æå¨2ç§åè¿ç»- æ¶å°è¶è¿7次è¿ä¸ªä¿¡å·ï¼é£ä¹å°ä¼ä¸é¡¾ä¸åçç«å³å¼ºå¶éå¯ã å æ- ¤ï¼å¦æç³»ç»å¨éå¯è¿ç¨ä¸åµæ»ï¼ é£ä¹å¯ä»¥éè¿å¿«éè¿æ7次 Ctrl-Alt-Del ç»å鮿¥å¼ºå¶ç«å³éå¯ã

systemd ç¨æ·å®ä¾å¤çæ¤ä¿¡å·çæ¹å¼ä¸ SIGTERM ç¸åã

SIGWINCH

systemd ç³»ç»å®ä¾å°ä¼å¯å¨ kbrequest.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start kbrequest.target å½ä»¤ã

systemd ç¨æ·å®ä¾å°ä¼å®å¨å¿½ç¥æ¤ä¿¡å·ã

SIGPWR

systemd å°ä¼å¯å¨ sigpwr.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start sigpwr.target å½ä»¤ã

SIGUSR1

systemd å°ä¼å°è¯éæ°è¿æ¥å° D-Bus æ»çº¿ã

SIGUSR2

systemd å°ä¼ä»¥äººç±»æè¯»çæ ¼å¼å°å¶å®æ´çç¶æè®°å½å°æ¥å¿ä¸ã æ¥æçæ ¼å¼ä¸ systemd-analyze dump çè¾åºæ ¼å¼ç¸åã

SIGHUP

éæ°å è½½å®æ¤è¿ç¨çéç½®æä»¶ã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl daemon-reload å½ä»¤ã

SIGRTMIN+0

è¿å¥é»è®¤æ¨¡å¼ï¼å¯å¨ default.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start default.target å½ä»¤ã

SIGRTMIN+1

è¿å¥ææ´æ¨¡å¼ï¼å¯å¨ rescue.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl isolate rescue.target å½ä»¤ã

SIGRTMIN+2

è¿å¥ç´§æ¥ç»´ä¿®æ¨¡å¼ï¼å¯å¨ emergency.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl isolate emergency.target å½ä»¤ã

SIGRTMIN+3

å³éç³»ç»ï¼å¯å¨ halt.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start halt.target å½ä»¤ã

SIGRTMIN+4

å³éç³»ç»å¹¶åæçµæºï¼å¯å¨ poweroff.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start poweroff.target å½ä»¤ã

SIGRTMIN+5

éæ°å¯å¨ï¼å¯å¨ reboot.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start reboot.target å½ä»¤ã

SIGRTMIN+6

éè¿åæ ¸ç kexec æ¥å£éæ°å¯å¨ï¼å¯å¨ kexec.target ååã åºæ¬ä¸ç¸å½äºæ§è¡ systemctl start kexec.target å½ä»¤ã

SIGRTMIN+13

ç«å³å³éæºå¨

SIGRTMIN+14

ç«å³å³éæºå¨å¹¶åæçµæº

SIGRTMIN+15

ç«å³éæ°å¯å¨

SIGRTMIN+16

ç«å³éè¿åæ ¸ç kexec æ¥å£éæ°å¯å¨

SIGRTMIN+20

卿§å¶å°ä¸æ¾ç¤ºç¶ææ¶æ¯ã ç¸å½äºä½¿ç¨ systemd.show_status=1 åæ ¸å¼å¯¼é项ã

SIGRTMIN+21

ç¦æ¢å¨æ§å¶å°ä¸æ¾ç¤ºç¶ææ¶æ¯ã ç¸å½äºä½¿ç¨ systemd.show_status=0 åæ ¸å¼å¯¼é项ã

SIGRTMIN+22, SIGRTMIN+23

å°æ¥å¿ç级设为 "debug"(22) æ "info"(23)ã ç¸å½äºä½¿ç¨ systemd.log_level=debug æ systemd.log_level=info åæ ¸å¼å¯¼é项ã

SIGRTMIN+24

ç«å³éåº systemd ç¨æ·å®ä¾(ä¹å°±æ¯ä»å¯¹ --user å®ä¾ææ)ã

SIGRTMIN+26, SIGRTMIN+27, SIGRTMIN+28

å°æ¥å¿ç级设为 "journal-or-kmsg"(26) æ "console"(27) æ "kmsg"(28)ã ç¸å½äºä½¿ç¨ systemd.log_target=journal-or-kmsg æ systemd.log_target=console æ systemd.log_target=kmsg åæ ¸å¼å¯¼é项ã

ç¯å¢åé

$SYSTEMD_LOG_LEVEL

systemd æ¥å¿ç级ã å¯ä»¥è¢« --log-level= é项è¦çã

$SYSTEMD_LOG_TARGET

systemd æ¥å¿ç®æ ã å¯ä»¥è¢« --log-target= é项è¦çã

$SYSTEMD_LOG_COLOR

systemd æ¯å¦åºè¯¥é«äº®éè¦çæ¥å¿ä¿¡æ¯ã å¯ä»¥è¢« --log-color= é项è¦çã

$SYSTEMD_LOG_LOCATION

systemd æ¯å¦åºè¯¥å¨æ¥å¿ä¿¡æ¯ä¸åå«ä»£ç ä½ç½®(code location)ã å¯ä»¥è¢« --log-location= é项è¦çã

$XDG_CONFIG_HOME, $XDG_DATA_HOME

systemd ç¨æ·å®ä¾æ ¹æ® XDG Base Directory specification [4] è§è使ç¨è¿äºåéå è½½ååæä»¶åå¶ .{d,wants,requires}/ ç®å½ã

$SYSTEMD_UNIT_PATH

ååç®å½

$SYSTEMD_SYSVINIT_PATH

SysVå¯å¨èæ¬ç®å½

$SYSTEMD_SYSVRCND_PATH

SysVè¿è¡çº§ç®å½

$SYSTEMD_COLORS

æ§å¶è¾åºå容çè²å½©æ¹æ¡

$LISTEN_PID, $LISTEN_FDS, $LISTEN_FDNAMES

å¨åºäºå¥æ¥åå¯å¨çè¿ç¨ä¸ç± systemd 设置æ¤åéï¼ ä»¥ä¾ç®¡çç¨åºä½¿ç¨ãè¯¦è§ sd_listen_fds(3) æåã

$NOTIFY_SOCKET

ç± systemd 设置æ¤åéï¼ ä»¥æ¥åç¶æä»¥åæä¾å¯å¨å®æ¯çéç¥ï¼ä»¥ä¾ç®¡çç¨åºä½¿ç¨ãè¯¦è§ sd_notify(3) æåã

åæ ¸å¼å¯¼é项

å½ä½ä¸ºç³»ç»å®ä¾è¿è¡çæ¶åï¼ systemd è½å¤æ¥åä¸é¢ååºçåæ ¸å¼å¯¼é项ã [5]

systemd.unit=, rd.systemd.unit=

设置é»è®¤å¯å¨çååã é»è®¤å¼æ¯ default.target ã å¯ç¨äºä¸´æ¶ä¿®æ¹å¯å¨ç®æ (ä¾å¦ rescue.target æ emergency.target )ã详æåè§ systemd.special(7) æåã æ "rd." åç¼çåæ°ä¸ç¨äº initrd(initial RAM disk) ç¯å¢ï¼ èæ åç¼çåæ°åç¨äºå¸¸è§ç¯å¢ã

systemd.dump_core=

å¦æè®¾ä¸ºé»è®¤å¼ yes ï¼é£ä¹ systemd(PID=1) å°ä¼å¨å´©æºæ¶è¿è¡æ ¸å¿è½¬å¨ï¼ å¦åä¸è¿è¡ä»»ä½è½¬å¨ã

systemd.crash_chvt=

å¯ä»¥è®¾ä¸ºä¸ä¸ª 1-63 ä¹é´çæ´æ°æå¸å°å¼ã è¥è®¾ä¸ºæ´æ°å systemd(PID=1) å°å¨å´©æºæ¶åæ¢å°æå®ç¼å·çèææ§å¶å°ï¼ è¥è®¾ä¸º yes ï¼ åè¡¨ç¤ºåæ¢å°åæ ¸æ¶æ¯æä½¿ç¨çèææ§å¶å°ï¼ è¥è®¾ä¸º no(é»è®¤å¼) åä¸åæ¢å°ä»»ä½èææ§å¶å°ã

systemd.crash_shell=

å¦æè®¾ä¸º yes ï¼ é£ä¹ systemd(PID=1) å°å¨å´©æº10ç§åå¯å¨ä¸ä¸ª shell ï¼ é»è®¤å¼ no å表示å³ä½¿å´©æºä¹ä¸å¯å¨ä»»ä½ shell ã ç±äºè¢«å¯å¨ç shell ä¸éè¦ä»»ä½å¯ç è®¤è¯ï¼ æä»¥ä½¿ç¨è¿ä¸ªç¹æ§æ¶éè¦æ³¨æå¶å¸¦æ¥çå®å¨éæ£ã

systemd.crash_reboot=

å¦æè®¾ä¸º yesï¼ é£ä¹ systemd(PID=1) å°å¨å´©æº10ç§åèªå¨é坿´ä¸ªæºå¨ï¼ é»è®¤å¼ no å表示å³ä½¿å´©æºä¹ä¸éå¯(æ éå¶çæ»å¨é£é)ï¼ è¿æ ·å¯ä»¥é¿åè¿å¥å¾ªç¯éå¯ã å¦æä¸ systemd.crash_shell=yes åæ¶ä½¿ç¨ï¼ é£ä¹ç³»ç»å°å¨éåº shell ä¹åéå¯ã

systemd.confirm_spawn=

设为 yes 表示 systemd(PID=1) 卿´¾çæ°è¿ç¨æ¶è¿è¡ç¡®è®¤æç¤ºã é»è®¤å¼ no è¡¨ç¤ºä¸æç¤ºã

systemd.show_status=

å¯å¨æ¶æ¯å¦å¨æ§å¶å°ä¸æ¾ç¤ºç®æçæå¡ç¶æã å¯ä»¥æ¥å yes(æ¾ç¤º), no(䏿¾ç¤º), auto(èªå¨)ä¸ä¸ªå¼ã auto ä¸ no ç¸ä¼¼ï¼ ä¸åä¹å¤å¨äºå½æä¸ªæå¡å¯å¨å¤±è´¥æèå¯å¨èæ¶å¤ªé¿æ¶ï¼å°ä¼æ¾ç¤ºå¶ç¶æã å½ä½¿ç¨äº quiet åæ ¸å¼å¯¼éé¡¹çæ¶åï¼ é»è®¤å¼æ¯ auto ï¼ å¦åé»è®¤å¼æ¯ yes ã

systemd.log_target=, systemd.log_level=, systemd.log_color=, systemd.log_location=

ç¨äºæ§å¶æ¥å¿è¾åºï¼å«ä¹ä¸ä¹åç $SYSTEMD_LOG_TARGET, $SYSTEMD_LOG_LEVEL, $SYSTEMD_LOG_COLOR, $SYSTEMD_LOG_LOCATION ç¯å¢åéç¸åã

systemd.default_standard_output=, systemd.default_standard_error=

设置æå¡çé»è®¤æ åè¾åºä¸æ åéè¯¯ï¼ å«ä¹ä¸ç¸åºç --default-standard-output= å --default-standard-error= å½ä»¤è¡é项ç¸åã

systemd.setenv=

æ¥å"VARIABLE=VALUE"æ ¼å¼çåç¬¦ä¸²ï¼ å¯ç¨äºä¸ºæ´¾ççå- è¿ç¨è®¾ç½®é»è®¤ç¯å¢åéã å¯ä»¥å¤æ¬¡ä½¿ç¨ä»¥è®¾ç½®å¤ä¸ªåéã

systemd.machine_id=

æ¥åä¸ä¸ª32å符表示ç16è¿å¶å¼ï¼ ç¨ä½è¯¥ä¸»æºç machine-id ã 主è¦ç¨äºç½ç»å¯å¨ï¼ä»¥ç¡®ä¿æ¯æ¬¡å¯å¨é½è½å¾å°ç¸åç machine-id å¼ã

quiet

å³éå¯å¨è¿ç¨ä¸çç¶æè¾åºãç¸å½äº systemd.show_status=no çææã æ³¨æï¼å ä¸ºæ¤é项ä¹åæ ·è¢«åæ ¸æè¯å«ï¼ å¹¶ç¨äºç¦æ¢è¾åºåæ ¸æ¥å¿ï¼ æä»¥ä½¿ç¨æ¤é项ä¼å¯¼è´åæ¶å³éåæ ¸ä¸ systemd çè¾åºã

debug

å¼å¯è°è¯è¾åºï¼ çä»·äºè®¾ç½®äº systemd.log_level=debug ã æ³¨æï¼å ä¸ºæ¤é项ä¹åæ ·è¢«åæ ¸æè¯å«ï¼ å¹¶ç¨äºå¼å¯åæ ¸çè°è¯è¾åºï¼ æä»¥ä½¿ç¨æ¤é项ä¼å¯¼è´åæ¶å¼å¯åæ ¸ä¸ systemd çè°è¯è¾åºã

emergency, rd.emergency, -b

å¯å¨å°ç´§æ¥ç»´ä¿®æ¨¡å¼ãçä»·äºè®¾ç½®äº systemd.unit=emergency.target æ rd.systemd.unit=emergency.target

rescue, rd.rescue, single, s, S, 1

å¯å¨å°ææ´æ¨¡å¼ãçä»·äºè®¾ç½®äº systemd.unit=rescue.target æ rd.systemd.unit=rescue.target

2, 3, 4, 5

å¯å¨å°å¯¹åºç SysV è¿è¡çº§ã çä»·äºè®¾ç½®äºå¯¹åºç systemd.unit=runlevel2.target, systemd.unit=runlevel3.target, systemd.unit=runlevel4.target, systemd.unit=runlevel5.target,

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=

设置ç¸åºçç³»ç» locale ï¼ ä¼è¦ç /etc/locale.conf ä¸ç设置ã åè§ locale.conf(5) ä¸ locale(7) æåã

æ´å¤åæ ¸å¼å¯¼é项çè§£éï¼ åè§ kernel-command-line(7) æåã

SOCKETS ä¸ FIFOS

/run/systemd/notify

éç¥å®æ¤è¿ç¨ç¶æç UNIX socket æä»¶ï¼ ç¨äºå®ç° sd_notify(3) ä¸- å®ç°ç宿¤è¿ç¨éç¥é»è¾ã

/run/systemd/private

ä»è¢« systemctl(1) å·¥å·åé¨ç¨äºä¸ systemd è¿ç¨éä¿¡ç UNIX socket æä»¶ã å¶ä»è¿ç¨ä¸åºè¯¥ä½¿ç¨å®ã

/dev/initctl

ç± systemd-initctl.service ååæä¾çä¸ä¼ ç» SysV å¼å®¹ç客æ·ç«¯æ¥å£(FIFO)ã è¿æ¯ä¸ä¸ªå³å°è¢«åºå¼çæ¥å£ï¼å°½éä¸è¦ä½¿ç¨å®ã

åè§

systemd Homepage [6] , systemd-system.conf(5), locale.conf(5), systemctl(1), journalctl(1), systemd-notify(1), daemon(7), sd-daemon(3), systemd.unit(5), systemd.special(5), pkg-config(1), kernel-command-line(7), bootup(7), systemd.directives(7)

NOTES

1.

cgroups

https://www.kernel.org/doc/Documentation/cgroups/cgroups.txt

2.

Container Interface

http://www.freedesktop.org/wiki/Software/systemd/ContainerInterface

3.

initrd Interface

http://www.freedesktop.org/wiki/Software/systemd/InitrdInterface

4.

XDG Base Directory specification

http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

5.

å½ systemd å¨ Linux 容å¨ä¸è¿è¡çæ¶åï¼ è¿äºåæ°å¯ä»¥ç´æ¥å¨ systemd å½ä»¤è¡ä¸ä¼ é(æ¾ç½®å¨ææå½ä»¤è¡é项ä¹å)ï¼ å½ systemd ä¸å¨ Linux 容å¨ä¸è¿è¡çæ¶åï¼ è¿äºåæ°å°ä» /proc/cmdline ä¸è·åã

6.

systemd Homepage

http://www.freedesktop.org/wiki/Software/systemd/

è·

æ¬é¡µé¢ä¸æçç±ä¸æ man æå页计åæä¾ã

ç¿»è¯äººåï¼éæ¥å½
鿥å½ä½åéï¼http://www.jinbuguo.com
䏿 man æå页计åï¼https://github.com/man-pages-zh/manpages-zh