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

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

1
จะค้นหาบันทึกการให้บริการที่เริ่มต้นโดย systemd เมื่อบูตเครื่องได้ที่ไหน
ฉันใช้ Debian ที่ไม่เสถียรsystemdเมื่อเริ่มระบบฉันมีบริการบางอย่างที่ทำเครื่องหมายว่าFAILED(ไม่ใช่OK) แต่บันทึกเร็วเกินไปสำหรับฉันที่จะคว้าชื่อบริการที่ล้มเหลว ฉันสงสัยว่ามีวิธีที่จะได้รับการบันทึกบูตครั้งนี้เป็นระบบที่ขึ้นและทำงาน (ผมไม่ได้พูดเกี่ยวกับบันทึก kernel ซึ่งสามารถเข้าถึงได้ด้วยdmesgแต่services) และ, service --status-allไม่ได้ช่วยจริงๆเพราะมันแสดงรายการบริการที่เปิด / ปิด แต่ไม่ได้ที่ล้มเหลวในการบูต ดังนั้นคำใบ้ใด ๆ ยินดีต้อนรับ!
23 debian  systemd 

1
วิธีตรวจสอบ systemd system.journal จากระบบอื่น
ฉันมี arch linux ที่ล้มเหลวบนอุปกรณ์ อุปกรณ์ไม่มีหน้าจอใด ๆ แต่ไม่ตอบสนองต่อเครือข่าย ดังนั้นฉันจึงนำการ์ด SD ใส่ลงในเดสก์ท็อป Ubuntu ดู system.journal ที่นั่นและ ... จะดูว่ามีอะไรอยู่ข้างในได้บ้าง จากเอกสาร Arch Linux ฉันรู้ว่าฉันสามารถทำได้: strings /mnt/arch/var/log/journal/.../system.journal | grep -i message แต่มันเป็นพื้นฐานจริงๆ คำถามคือ: มีวิธีที่สะดวกกว่าในการตรวจสอบ system.journal จากระบบอื่นมากกว่าการใช้สตริงหรือไม่? ยกตัวอย่างเช่นฉันสามารถระบุไฟล์ที่จะอ่านสำหรับjournalctl ได้หรือไม่?

1
หนึ่งคำสั่ง systemctl เพื่อเริ่มและเปิดใช้งาน
การใช้หนึ่งคำสั่งเพื่อเริ่มและเปิดใช้systemctlงานซอฟต์แวร์ที่มีการจัดการจะมีประโยชน์ในการสำรองบางบรรทัดในสคริปต์ไม่กี่ทำให้พวกเขามีความสวยงามมากขึ้นเล็กน้อย (ไม่ใช่ปัญหาจริงๆ แต่เป็นสิ่งที่ดีที่จะมี) มีsystemctlคำสั่งเดียวสำหรับทั้งสองstartและenableโปรแกรมที่ควบคุมโดยsystemctl?

2
สับสนโดยรายการ ExecStartPre ในไฟล์ systemd unit
ฉันมีบริการ systemd ที่ต้องการสร้างไดเรกทอรี/runแต่ไม่เช่นนั้นเรียกใช้ในฐานะผู้ใช้ที่ไม่ใช่รูท จากตัวอย่างบล็อกฉันได้รับวิธีแก้ไขปัญหาต่อไปนี้: [Unit] Description=Startup Thing [Service] Type=oneshot ExecStart=/usr/bin/python3 -u /opt/thing/doStartup WorkingDirectory=/opt/thing StandardOutput=journal User=thingUser # Make sure the /run/thing directory exists PermissionsStartOnly=true ExecStartPre=-/bin/mkdir -p /run/thing ExecStartPre=/bin/chmod -R 777 /run/thing [Install] WantedBy=multi-user.target ความมหัศจรรย์อยู่ใน 3 บรรทัดที่ตามความคิดเห็น Apparently ExecStartPreจะทำงานเป็น root ด้วยวิธีนี้ แต่ExecStartจะทำงานเป็นผู้ใช้ที่ระบุ สิ่งนี้นำไปสู่คำถาม 3 ข้อที่: สิ่งที่-ต้องทำต่อหน้า/bin/mkdir? ฉันไม่รู้ว่าทำไมมันถึงอยู่ที่นั่นหรือทำอะไร เมื่อมีExecStartPreไฟล์หลายไฟล์อยู่ในหน่วยไฟล์พวกเขาจะเรียกใช้ตามลำดับที่พบในไฟล์หน่วยหรือไม่ หรือวิธีอื่น ๆ ? นี่เป็นเทคนิคที่ดีที่สุดในการบรรลุเป้าหมายของฉันในการสร้างไดเร็กทอรีการรันเพื่อให้ผู้ใช้ที่ไม่ใช่รูทสามารถใช้งานได้หรือไม่?
23 systemd 

3
วิธีการทั่วไปในการดีบักรอบการสั่งซื้อใน systemd
ฉันรู้ต่อไปด้ายและคาดคะเนคำตอบของมัน ยกเว้นคำตอบไม่ใช่คำตอบในความหมายทั่วไป มันบอกว่าปัญหาเกิดขึ้นในกรณีใดกรณีหนึ่ง แต่ไม่ใช่โดยทั่วไป คำถามของฉันคือ: มีวิธีการแก้ปัญหาการสั่งวงจรในลักษณะทั่วไป ? เช่นมีคำสั่งที่จะอธิบายวงจรและสิ่งที่เชื่อมโยงหน่วยหนึ่งไปยังอีก? ตัวอย่างเช่นฉันมีการติดตามในjournalctl -b(โปรดละเว้นวันที่ระบบของฉันไม่มี RTC ที่จะซิงค์เวลาด้วย): Jan 01 00:00:07 host0 systemd[1]: Found ordering cycle on sysinit.target/start Jan 01 00:00:07 host0 systemd[1]: Found dependency on local-fs.target/start Jan 01 00:00:07 host0 systemd[1]: Found dependency on cvol.service/start Jan 01 00:00:07 host0 systemd[1]: Found dependency on basic.target/start Jan …
23 systemd 


2
ระงับและล็อคหน้าจอที่ฝาปิดใน arch / systemd
อะไรคือวิธีที่ตรงไปตรงมาที่สุดในการล็อคหน้าจอและระงับเมื่อปิดฝา? ฉันใช้งาน hooks hooks ใน/etc/systemd/logind.confและระงับสำเร็จเมื่อปิดฝา อย่างไรก็ตามฉันหลงทางเมื่อมาถึงส่วนล็อค - ฉันควรเปิดใช้งานบริการสกรีนเซฟเวอร์บางส่วนและฉันจะเปิดใช้งานสองเหตุการณ์พร้อมกันได้logind.confอย่างไร

2
journalctl - ตรวจสอบความเสียหายของรายงาน
ฉันเพิ่งสังเกตเห็นverifyตัวเลือกนี้journalctlและตัดสินใจที่จะออกไปมันแสดงให้เห็นถึงการทุจริตสิ่งที่อาจทำให้เกิดอะไรขึ้น? และถ้าฉันควรทำอะไรเกี่ยวกับเรื่องนี้? ฉันควรตรวจสอบเพิ่มเติมหรือไม่ journalctl --verify PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1000.journal Invalid object contents at 3733856░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 0% File corruption detected at /var/log/journal/19184893a1d645c7a43729e79b10a876/system.journal:3733856 (of 91734016, 4%). FAIL: /var/log/journal/19184893a1d645c7a43729e79b10a876/system.journal (Bad message) Invalid object contents at 21575496░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 45% File corruption detected at /var/log/journal/19184893a1d645c7a43729e79b10a876/system@60e058db556e4de4b256d0b1ff176aa4-0000000000000001-0004e0b436d20aa1.journal:21575496 (of 44052480, 48%). FAIL: /var/log/journal/19184893a1d645c7a43729e79b10a876/system@60e058db556e4de4b256d0b1ff176aa4-0000000000000001-0004e0b436d20aa1.journal (Bad message) PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1000@60e058db556e4de4b256d0b1ff176aa4-0000000000000a91-0004e0b4ff9a949a.journal PASS: /var/log/journal/19184893a1d645c7a43729e79b10a876/user-1001.journal

6
เมื่อฉันเข้าสู่ระบบมันแฮงค์จนกว่า crng init จะเสร็จสิ้น
เมื่อฉันเข้าสู่ระบบด้วย LightDM แล็ปท็อปของฉันทำงาน Debian Unstable มันเพิ่งเริ่มต้นที่จะแขวนประมาณ 2 นาทีจนการแสดงข้อความjournalctl kernel: random: crng init doneเมื่อฉันกดปุ่มสุ่มบนแป้นพิมพ์ในขณะที่มันหยุดทำงานมันจะเข้าสู่ระบบเร็วขึ้น (ประมาณ 10 วินาที) ก่อนที่ฉันจะไม่มีปัญหานี้มีวิธีใดบ้างที่ฉันสามารถแก้ไขได้ แก้ไข: ใช้linux-image-4.15.0-3-amd64แทนการlinux-image-4.16.0-1-amd64ทำงาน แต่ฉันไม่ต้องการใช้เคอร์เนลที่เก่ากว่า

2
ล้างรายการ coredumpctl
ฉันกำลังมองหาวิธีที่จะลบร่องรอยของ coredumps เก่าcoredumpctl listๆ ในขณะนั้นจะมีรายการ coredumps เริ่มต้นที่ 2014-12-14 - ฉันได้อัปเดตซอฟต์แวร์บ่อยครั้งตั้งแต่นั้นมาและตอนนี้ฉันสงสัยว่า coredumps เก่านั้นจะช่วยฉันแก้ไขปัญหาใด ๆ ในขณะนี้ น่าเสียดายที่การลบไฟล์ออกจากการ/var/lib/systemd/coredumpทำเครื่องหมายดอกจันในคอลัมน์ "PRESENT" ของเอาต์พุต coredumpctls หายไป ฉันไม่สามารถหาวิธีที่จะลบข้อมูลทั้งหมดเกี่ยวกับ coredumps ใน manpages หรือในความช่วยเหลือของ coredumpctl

1
อะไรทำให้ systemd-nspawn ยังคง“ ไม่เหมาะสมสำหรับการตั้งค่าคอนเทนเนอร์ที่ปลอดภัย”?
นี่คือที่ระบุไว้ในหน้าคนสำหรับsystemd-nspawn โปรดทราบว่าแม้ว่าข้อควรระวังเพื่อความปลอดภัยเหล่านี้จะเกิดขึ้น systemd-nspawn ไม่เหมาะสำหรับการตั้งค่าคอนเทนเนอร์ที่ปลอดภัย คุณลักษณะด้านความปลอดภัยจำนวนมากอาจถูกหลีกเลี่ยงและเป็นประโยชน์หลักในการหลีกเลี่ยงการเปลี่ยนแปลงโดยไม่ตั้งใจของระบบโฮสต์จากคอนเทนเนอร์ การใช้โปรแกรมนี้ตามวัตถุประสงค์คือการดีบักและทดสอบรวมถึงการสร้างแพ็คเกจการแจกจ่ายและซอฟต์แวร์ที่เกี่ยวข้องกับการจัดการการบูตและระบบ คำถามนี้ถูกถามในรายชื่อผู้รับจดหมายในปี 2011แต่ดูเหมือนว่าคำตอบจะล้าสมัย systemd-nspawn มีรหัสที่จะดำเนินการCLONE_NEWNETโดยใช้--private-networkตัวเลือกตอนนี้ ดูเหมือนว่าจะครอบคลุมAF_UNIXปัญหาเนมสเปซส่วนตัวและฉันเดาCAP_NET_RAWและCAP_NET_BINDปัญหาที่กล่าวถึง ประเด็นปัญหายังคงอยู่ ณ จุดนี้และตัวอย่างเช่น LXC ทำนอกเหนือจากสิ่งที่systemd-nspawnสามารถทำได้ในปัจจุบัน?
21 security  systemd  lxc 

2
สิ่งที่จำเป็นสำหรับการเริ่มระบบน้อยที่สุดเพื่อเปิดใช้ getty บนคอนโซลเสมือน
สำหรับ SysV initฉันต้อง/etc/inittabrespawning รายการเก็ตตี้ที่/sbin/initไบนารีไบนารีและห้องสมุดที่ใช้ร่วมกันสำหรับเปลือกloginที่gettyที่ PAM / การรักษาความปลอดภัย / สิ่งเงาและอุปกรณ์ไม่กี่ไฟล์ สำหรับupstartฉันต้องการความต้องการเดียวกันค่อนข้างมาก แต่แทนที่จะ/etc/inittabมี*.confไฟล์บางไฟล์ภายใต้/etc/init: หนึ่ง * .conf start on startupที่ตั้ง runlevel ด้วยtelinitและหนึ่ง * .conf สำหรับแต่ละ tty ที่เริ่ม / respawn gettyบน tty นั้นบน runlevels ที่เหมาะสม . ฉันต้องการการกำหนดค่าและไบนารีsystemd initอะไร ดูเหมือนว่าเอกสารทั้งหมดที่ฉันจะมุ่งเน้นไปที่วิธีการใช้ระบบที่ติดตั้งแล้วเพื่อเริ่มและหยุดบริการ รายการไฟล์ที่จะคัดลอก (ยกเว้นเคอร์เนล / initrd) จากการติดตั้งArchหรือfedora ที่ใช้งานจะทำได้ดี แต่ฉันไม่สามารถหาข้อมูลประเภทsystemdนั้นได้ สิ่งที่ผมอยากจะรู้ว่าคือสำหรับsystemdสิ่งที่ไฟล์จะถูกต้องและสิ่งที่พวกเขาจะต้องมีการเริ่มต้นเปลือกเข้าสู่ระบบหลังจาก initramfs ไม่ได้ของการเรียกไปยังswitch_rootsystemd /sbin/init ตัวอย่างเช่นupstartไบนารีและสอง*.confไฟล์: ไฟล์/etc/init/whatever.conf: เริ่มต้นเมื่อเริ่มต้น ปล่อย …
21 boot  systemd 

1
เป็นไปได้หรือไม่ที่จะเรียกใช้หน่วยบริการ systemd ที่จับคู่จับเวลาด้วยตนเองเพื่อการทดสอบ?
ฉันมีตัวจับเวลา / หน่วยบริการที่ควรทำงานวันละครั้งภายใต้--userเงื่อนไข มันแสดงให้เห็นด้วยsystemctl --user statusและได้รับการเข้าสู่ระบบในวารสาร แต่มีส่วนหนึ่งของคำสั่งที่ล้มเหลว ดูเหมือนว่ามีบางสิ่งในคำสั่งแปลไม่ถูกต้อง ฉันต้องการ futz ด้วยไฟล์หน่วยและเรียกใช้บริการตรวจสอบบันทึก ฯลฯ เพื่อแก้ไขปัญหา อย่างไรก็ตามการแก้ไขตัวจับเวลาเพื่อทริกเกอร์หนึ่งนาทีในอนาคตการรอและการตรวจสอบบันทึกเป็น ... น่าเบื่อ ทำสิ่งที่ต้องการsystemctl --user execute xxxxxx.serviceเพียงแค่เรียกใช้สิ่งแดงราวกับว่าตัวจับเวลาเรียก?
21 systemd 

5
วิธีดูบรรทัด x ล่าสุดจากบันทึกการทำงาน systemctl
ฉันกำลังมองหาวิธีเพียงพิมพ์บรรทัด X สุดท้ายจากบริการ systemctl ใน Debian ฉันต้องการติดตั้งรหัสนี้ในสคริปต์ซึ่งใช้รายการบันทึกที่พิมพ์และล่าสุด ฉันพบโพสต์นี้แต่ฉันไม่สามารถแก้ไขได้ตามวัตถุประสงค์ของฉัน ขณะนี้ฉันกำลังใช้รหัสนี้ซึ่งเพิ่งให้ข้อมูลโค้ดไฟล์เล็กน้อยกับฉัน: journalctl --unit=my.service --since "1 hour ago" -p err ในการให้ตัวอย่างว่าผลลัพธ์ควรมีลักษณะอย่างไรให้พิมพ์คำสั่งด้านบนเพื่อรับบริการและเลื่อนไปจนจบบันทึก จากนั้นคัดลอก 300 บรรทัดล่าสุดที่เริ่มต้นจากด้านล่าง ความคิดของฉันคือการใช้ egrep เช่น egrep -m 700 .แต่ตอนนี้ฉันไม่มีโชค

4
สร้างจุดเชื่อมต่อไร้สายและแบ่งปันการเชื่อมต่ออินเทอร์เน็ตด้วย nmcli
ฉันจะสร้างฮอตสปอต Wi-Fi ด้วยเครื่องมือบรรทัดคำสั่งnmcliและแบ่งปันการเชื่อมต่ออินเทอร์เน็ตอีเธอร์เน็ตกับจุดเชื่อมต่อไร้สายได้อย่างไร นอกจากนี้ฉันจะเริ่มต้นสิ่งนี้โดยอัตโนมัติเมื่อบูตอย่างไร เป็นไปได้ด้วยnmcliหรือไม่

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