คำถามติดแท็ก systemd

systemd เป็นอีกทางเลือกหนึ่งสำหรับ SystemV และ Upstart init daemons สำหรับ Linux มันมีวัตถุประสงค์เพื่อให้กรอบที่ดีกว่าสำหรับการแสดงการพึ่งพาบริการที่อนุญาตให้ทำงานได้มากขึ้นในแบบคู่ขนานที่เริ่มต้นระบบและเพื่อลดเปลือกค่าใช้จ่าย

3
เอกสารประกอบ: สถาปัตยกรรมของ Linux Session
ฉันกำลังมองหาเอกสารภาพรวมที่ดีซึ่งอธิบายถึงกอง daemons และบริการที่เกี่ยวข้องในเซสชัน Linux ที่ทันสมัย แม้ว่าจะได้อ่านเอกสารต่าง ๆ เกี่ยวกับdbusและsystemdฉันยังไม่ได้รับภาพรวม โดยเฉพาะอย่างยิ่งฉันกำลังมองหาคำตอบสำหรับคำถามเหล่านี้ (ไม่ตอบคำถามพวกเขาควรจะอธิบายเฉพาะเอกสารที่ฉันกำลังมองหา): หลังจากเข้าสู่ระบบกระบวนการใดเป็นรูทของเซสชันของผู้ใช้ ควรเริ่มกระบวนการใดและทำไม ฉันกำลังมองหาคำตอบที่ไม่เชื่อเรื่องพระเจ้าบนเดสก์ท็อปไม่ว่า Gnome, KDE, FVWM หรือเชลล์แบบธรรมดาจะเริ่มทำงาน daemons ทั้งหมดนี้มีบทบาทอย่างไร ข้อใดจะวิ่งคนเดียวซึ่งขึ้นอยู่กับคนอื่น ควรเริ่มต้นแบบใดโดยใครทำไมและนานเท่าไร และใครควรดูแลสวนสัตว์แห่งนั้น ฉันขอเพราะฉันพบว่าฉันมีสวนสัตว์ทั้งภูตทำงานทันทีหลังจากที่บูต: systemd-journald, systemd-udevd, ,dbus-daemon systemd-logindแต่ไม่เพียงพอที่: นอกเหนือจากนี้วิ่งน้ำหนักเบาเป็นพิเศษรูปแบบไฟล์ PDF โปรแกรมดูzathura เพิ่มเติม populates เซสชั่นของฉันกับdbus-launch, dbus-daemon, at-spi2-registrydและที่ยังไม่เปิดตัวหลังอีกat-spi-bus-launcher dbus-daemonไม่เคยมีใครมาก่อนไม่มีผู้ได้รับเชิญ แต่พวกเขาจะอยู่รอบ ๆ บ้านให้ความรู้สึกน่ากลัวจนฉันออกจากระบบ ฉันแน่ใจว่าฉันพลาดบางสิ่งที่นี่ ... อีกตัวอย่าง: หลังจากเข้าสู่ระบบฉันมีการsystemdทำงานกับผู้ใช้ของฉันโพสต์ แต่ฉันไม่รู้ว่ามันควรจะทำอะไร (ตั้งแต่รุ่น 206 ฉันคิดว่าฉันไม่ควรใช้มันในฐานะผู้จัดการเซสชั่นใช่มั้ย) มันมีกระบวนการลูก(sd-pam)ซึ่งฉันหาเอกสารเกี่ยวกับไม่สำเร็จ พวกเขาทำอะไร? แนวคิดเบื้องหลังการตั้งค่านี้คืออะไร …

3
ฉันจะล็อกออนอัตโนมัติกับเดสก์ท็อปด้วย systemd ได้อย่างไร
ฉันจะกำหนดค่า systemd เพื่อล็อกอินโดยอัตโนมัติในสภาพแวดล้อมเดสก์ท็อปของฉันได้อย่างไรโดยไม่ต้องใช้ตัวจัดการการเข้าสู่ระบบ ฉันกำลังใช้ Arch

1
การเมาท์ Systemd ล้มเหลว โดยที่การตั้งค่า = ไม่ตรงกับชื่อหน่วย
ถ้าฉันใช้คำสั่งนี้: mount -t xfs -o noatime,nodiratime,logbufs=8 -L d1 /srv/node/d1 ทำงานได้อย่างถูกต้องทั้งหมด แต่ถ้าฉันพยายามที่จะผ่านsystemdภูเขามันล้มเหลว ฉันสร้างไฟล์/etc/systemd/system/mnt-d1.mountโดยมีเนื้อหาดังต่อไปนี้: [Unit] Description = Disk 1 [Mount] What = LABEL=d1 Where = /srv/node/d1 Type = xfs Options = noatime,nodiratime,logbufs=8 [Install] WantedBy = multi-user.target หลังจากนั้นฉันรันคำสั่งเหล่านี้: systemctl daemon-reload systemctl start mnt-d1.mount คนสุดท้ายแสดงให้ฉันเห็น: Failed to start mnt-d1.mount: Unit mnt-d1.mount failed to load: …
20 mount  systemd 

2
รันสคริปต์ทุก ๆ 30 นาทีด้วย systemd
ฉันต้องการรันสคริปต์ทุก ๆ 30 นาทีหลังจากบูตเข้าสู่ระบบ ฉันรู้ว่าคุณสามารถใช้ cron ได้ แต่ฉันไม่ได้วางแผนที่จะใช้คุณสมบัตินี้บ่อยครั้งดังนั้นฉันจึงอยากลองใช้กับ systemd จนถึงตอนนี้ฉันเพิ่งพบตัวจับเวลาแบบโมโนโทนิกซึ่งช่วยให้สามารถเรียกใช้บางสิ่งได้ครั้งเดียว (อย่างน้อยฉันก็คิดอย่างนั้น) จะเป็นอย่างไรfoo.timerและfoo@user.serviceดูเหมือนว่าในกรณีที่ฉันต้องการที่จะดำเนินการบางอย่างทุก 30 นาทีจากการบูต / ระบบเริ่มต้น? foo@user.service [Unit] Description=run foo Wants=foo.timer [Service] User=%I Type=simple ExecStart=/bin/bash /home/user/script.sh foo.timer [Unit] Description=run foo [Timer] where I am stuck... ???

2
systemd: ทำให้คำสั่ง modprobe เป็นอัตโนมัติในเวลาบูต
การแจกจ่ายของฉันคือ Fedora 17 Gnome ทุกครั้งที่ฉันรีบูต / รีสตาร์ทคอมพิวเตอร์ฉันต้องเรียกใช้คำสั่งนี้ในฐานะรูท: modprobe rt2800usb ฉันจะทำให้มันถาวรได้อย่างไร

4
ทำไมบริการ systemd ที่เปิดใช้งานของฉันจะไม่เริ่มทำงานในการบู๊ต
ฉันมีไฟล์ systemd unit ต่อไปนี้ใน/etc/systemd/system/emacs.service: [Unit] Description=Emacs: the extensible, self-documenting text editor Documentatin=man:emacs(1) info:Emacs [Service] Type=forking ExecStart=/usr/bin/emacs --daemon ExecStop=/usr/bin/emacsclient --eval "(progn (setq kill-emacs-hook nil) (kill-emacs))" Restart=always Environment=DISPLAY=:%i TimeoutStartSec=0 [Install] WantedBy=default.target ฉันต้องการให้มันเริ่มตอนบูทดังนั้นฉันจึงเข้า systemctl enable emacs อย่างไรก็ตามทุกครั้งที่บริการของฉันเริ่มใหม่systemctl status emacsแสดง: ● emacs.service - Emacs: the extensible, self-documenting text editor Loaded: loaded (/etc/systemd/system/emacs.service; disabled; vendor …
20 systemd 

3
มีวิธีที่จะรู้ว่าเมื่อจับเวลา systemd จะทำงานต่อไปหรือไม่
ฉันกำลังทดสอบตัวจับเวลา systemd และพยายามแทนที่การหมดเวลาเริ่มต้น แต่ไม่สำเร็จ ฉันสงสัยว่ามีวิธีที่จะขอให้ systemd แจ้งให้เราทราบเมื่อบริการกำลังจะทำงานต่อไปหรือไม่ ไฟล์ปกติ ( /lib/systemd/system/snapbackend.timer): # Documentation available at: # https://www.freedesktop.org/software/systemd/man/systemd.timer.html [Unit] Description=Run the snapbackend service once every 5 minutes. [Timer] # You must have an OnBootSec (or OnStartupSec) otherwise it does not auto-start OnBootSec=5min OnUnitActiveSec=5min # The default accuracy is 1 minute. I'm not …

2
เหตุใดจึงต้องเพิ่มวงเล็บล้อมรอบชื่อกระบวนการ
บนเครื่องของฉัน ( การทดสอบแบบเดเบียน ) เมื่อฉันทำ ps aux | grep pam ฉันได้รับ orto 609 0.0 0.0 58532 2148 ? S 08:06 0:00 (sd-pam) orto 5533 0.0 0.0 12724 1948 pts/1 S+ 16:51 0:00 grep pam (sd-pam)ดูเหมือนชื่อแปลก ๆ สำหรับกระบวนการ อ่านฟอรั่มนี้ฉันเห็นว่าชื่อนี้ตั้งอยู่บนวัตถุประสงค์โดย systemd ในซอร์สโค้ดที่เราเห็น /* The child's job is to reset the PAM session …
19 process  systemd 

2
ฉันจะล้างรายการ journalctl สำหรับหน่วยเฉพาะได้อย่างไร
ฉันใช้เวลาสองสามวันในการเขียนสคริปต์หลามและสร้างไฟล์หน่วย systemd ขึ้นมา ในระหว่างการทดสอบสคริปต์บันทึกข้อผิดพลาดจำนวนมากเพื่อเจอร์นัล ฉันต้องการลบข้อผิดพลาดจากเจอร์นัลตอนที่ฉันทำไปแล้ว มีหลายวิธีในการล้างวารสารทั้งหมดตามที่อธิบายไว้ที่นี่: วิธีล้าง journalctl รวมถึงการใช้การjournalctl --vacuum-time=2dใช้journalctl --vacuum-size=500Mและการตั้งค่าชั่วคราวSystemMaxUse=ใน /etc/systemd/journald.conf ให้มีค่าต่ำมาก ทั้งหมดเหล่านี้ดูเหมือนจะล้างวารสารทั้งหมดส่งผลกระทบต่อทุกหน่วย ฉันแค่ต้องล้างรายการสำหรับหน่วยเดียว เป็นไปได้ไหม


5
ฉันไม่สามารถเปิดใช้งานหรือปิดใช้งานบริการผู้ใช้: ไม่สามารถดำเนินการได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
ฉันต้องการดีบัก / ทดสอบโปรแกรมใน eclipse ที่ใช้เซิร์ฟเวอร์ Redis ดังนั้นฉันตัดสินใจที่จะเปลี่ยนเซิร์ฟเวอร์เป็นบริการผู้ใช้เพื่อให้มีสิทธิ์ในการใช้งาน สิ่งที่รบกวนฉันคือฉันสามารถเริ่มหรือหยุดบริการ แต่ไม่สามารถเปิด / ปิดใช้งานได้ ข้อผิดพลาดที่ฉันได้รับคือ: Failed to execute operation: No such file or directory ต้นฉบับ / usr / lib / systemd / ระบบ: [Unit] Description=Advanced key-value store After=network.target [Service] User=arkos ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf ExecStop=/usr/bin/redis-cli shutdown [Install] WantedBy=multi-user.target แก้ไขและย้ายไปที่ / usr / lib / systemd …

1
ยูนิตตัวจับเวลา systemd ข้ามการทำงานครั้งถัดไปหรือไม่ถ้ากระบวนการยังไม่เสร็จ
ฉันต้องการใช้ systemd เพื่อเรียกใช้คำสั่งทุก 5 นาที อย่างไรก็ตามมีความเสี่ยงที่บางครั้งงานอาจใช้เวลานานกว่า 5 นาทีในการทำงาน ณ จุดนั้น systemd จะเริ่มต้นอินสแตนซ์ที่สองของคำสั่งเช่นฉันจะจบลงด้วย 2 กระบวนการทำงาน? เป็นไปได้ไหมที่จะบอกให้ systemd ไม่เริ่มกระบวนการที่สองหากกระบวนการแรกยังไม่เสร็จ? ถ้าไม่เป็นเช่นนั้น หมายเหตุ: ฉันหวังว่าคำตอบคือ "นั่นเป็นพฤติกรรมเริ่มต้นมันไม่ได้บันทึกไว้" หากเป็นกรณีนี้มีใครช่วยบอกฉันถึงข้อบกพร่องของเอกสารได้หรือไม่? หมายเหตุ: Cron มีปัญหาที่คล้ายกันซึ่งจะกล่าวถึงใน/unix//a/173928/11244 ฉันกำลังมองหาระบบที่เทียบเท่า
18 cron  systemd 

2
`logger 'บันทึกข้อความไว้ที่ใดใน Arch Linux
loggerคำสั่งบันทึกรายการใน syslog /var/log/messagesซึ่งมักจะทำให้เส้นที่ไปยังไฟล์บางอย่างเช่น ถ้าผมเข้าใจเอกสารอย่างถูกต้องใน Arch Linux ทั้งหมดเข้าสู่ระบบจะกระทำผ่าน systemd แต่ฉันไม่สามารถหารายการที่ใช้loggerjournalctl เกิดอะไรขึ้นกับข้อความที่ให้ไว้loggerใน Arch Linux? รายการบันทึกจัดเก็บอยู่ที่ไหน (grep ด่วนแนะนำ/var/log/journal/*/system.journal) ฉันจะเข้าถึงบันทึกนี้ได้อย่างไร (ฉันต้องการตัวเลือกพิเศษjournalctlหรือไม่)

1
วิธีการบังคับดิสก์ fsck โดยอัตโนมัติหลังจากความผิดพลาดใน `systemd`?
วิธีการตั้งค่าsystemdให้บังคับfsckดิสก์โดยอัตโนมัติหลังจากเกิดข้อผิดพลาด (ฮาร์ด poweroff)? เมื่อฉันใช้sysvinit(ใน Arch Linux) เมื่อ/sbin/initฉันใช้แฮ็ค: ในไฟล์ที่rc.localฉันสร้าง /forcefsckในrc.local.shutdownฉันลบมัน เมื่อrc.sysinitเปิดเครื่องให้เปิดใช้งาน fsck หาก/forcefsckมีอยู่ วิธีการทำในแบบเดียวกันsystemd? อาจจะมีสิ่งอำนวยความสะดวกในตัวสำหรับการทำแบบอัตโนมัติfsckหลังจากความสนใจ?
18 systemd  fsck 

4
สตาร์ท nginx เมื่อบู๊ตด้วย systemd
ฉันเพิ่งติดตั้ง nginx 1.9 บนเซิร์ฟเวอร์ Debian 8 nginx ทำงานได้ดีเมื่อฉันบอกให้ทำงาน แต่ดูเหมือนว่าจะไม่โหลด nginx โดยอัตโนมัติเมื่อบูต ฉันได้ลองใช้สคริปต์ init หลาย ๆ ตัวที่แนะนำบนอินเทอร์เน็ต แต่ยังไม่ได้ผล ดังนั้นตอนนี้ฉันกำลังพยายามหามันด้วย systemctl ~$ systemctl status nginx ● nginx.service Loaded: masked (/dev/null) Active: inactive (dead) ~$ sudo systemctl try-restart nginx Failed to try-restart nginx.service: Unit nginx.service is masked. ~$ sudo systemctl reload nginx Failed …
18 debian  systemd  nginx 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.