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

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

2
ฉันจะอนุญาตให้ผู้ใช้ที่ไม่ใช่รูทควบคุมเซอร์วิส systemd ด้วยอินสแตนซ์ได้อย่างไร
ฉันต้องการอนุญาตให้ผู้ใช้ในdbaกลุ่มสามารถควบคุมdatabase@บริการได้ คำตอบสำหรับคำถามที่เกี่ยวข้องนี้คือการทำรายการsystemctl"คำกริยา" ทั้งหมดที่ฉันต้องการอนุญาตในsudoersไฟล์อย่างไรก็ตามนั่นไม่ได้ใช้กับกรณีของฉันเพราะฉันไม่รู้ว่าฐานข้อมูลใดที่อาจมีอยู่ในระบบ ตัวอย่างเช่นถ้าฉันแสดง %dba = /usr/bin/systemctl start database@awsesomeapp %dba = /usr/bin/systemctl start database@anotherawsesomeapp %dba = /usr/bin/systemctl start database@yetanotherawsesomeapp %dba = /usr/bin/systemctl start database@wowyetanotherawsesomeapp # ... other "verbs" omitted for brevity ที่ไม่ครอบคลุมอินสแตนซ์ที่อาจมีอยู่ในอนาคตและ dba จะไม่สามารถทำได้ $ sudo systemctl start database@omgwowyetanotherawsesomeapp อย่างไรก็ตามฉันคิดในแง่ของบรรจุภัณฑ์มากกว่าที่คิดกับระบบเฉพาะ โปรดทราบว่าดังที่แสดงในคำตอบที่น่าอัศจรรย์สำหรับคำถามอื่นที่เกี่ยวข้องการใช้ sudo globs สำหรับสิ่งนี้ไม่ปลอดภัยในท้ายที่สุด: %dba ALL = /usr/bin/systemctl start database@[a-z]* …

1
จะกำหนดทิศทางเอาต์พุตเจอร์นัลของบางหน่วยไปยังไฟล์เฉพาะได้อย่างไร?
ฉันมีระบบที่มี daemons หลายตัวกำลังทำงาน (เป็น systemd units) ที่ส่งออกบันทึกข้อมูลไปยังเจอร์นัลใน Arch Linux ฉันต้องการกำหนดเอาท์พุทเจอร์นัลของไฟล์หน่วยเหล่านั้นบางไฟล์ให้เป็นไฟล์ข้อความแยกต่างหากซึ่งฉันระบุตำแหน่งที่ตั้งไว้เป็นหลักโดยสร้างไฟล์บันทึกสำหรับชุดย่อยของหน่วย ฉันจะทำเช่นนั้นได้อย่างไร

1
เป็นวิธีที่ถูกต้องในการเขียนกฎ udev เพื่อหยุดบริการภายใต้ systemd อะไร
ฉันกำลังเรียกใช้ Arch Linux และฉันมีกฎ udev ซึ่งเริ่มให้บริการเมื่อมีการเสียบอุปกรณ์ ในกรณีนี้มันจะทำการเชื่อมต่อเมื่อทำการต่อโมเด็ม 3G KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="netcfg@wvdial.service" อย่างไรก็ตามหากอุปกรณ์ถูกลบออก systemd จะไม่หยุดให้บริการและด้วยเหตุนี้เมื่อเสียบปลั๊กอีกครั้งอุปกรณ์จะไม่เริ่มบริการเนื่องจากมันกำลังทำงานอยู่ สิ่งที่ฉันต้องการคือกฎ udev ที่ตรงกันซึ่งทำงานเมื่ออุปกรณ์ถูกลบเพื่อหยุดบริการ ปรับปรุง ใช้คำตอบด้านล่างสิ่งที่ฉันมีตอนนี้คือกฎ udev ต่อไปนี้ KERNEL=="ttyUSB*", SYMLINK=="gsmmodem", TAG+="systemd", ENV{SYSTEMD_WANTS}="vodafone.service" ด้วยไฟล์เซอร์วิสต่อไปนี้ (ซึ่งถูกคัดลอกและวางโดยทั่วไปจากไฟล์เซอร์วิส netcfg: [Unit] Description=Netcfg networking service for Vodafone Dongle Before=network.target Wants=network.target BindsTo=dev-gsmmodem.device After=dev-gsmmodem.device [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/netcfg check-iface wvdial ExecStop=-/usr/bin/netcfg down wvdial KillMode=none …
12 linux  udev  systemd 

3
ฉันจะตั้งค่าปุ่มเปิด / ปิด (ในเคสคอมพิวเตอร์) ให้ปิดระบบด้วย 'systemd' ได้อย่างไร
ฉันจะตั้งค่าปุ่มเปิดปิด (บนเคสคอมพิวเตอร์ของฉันไม่ใช่แป้นพิมพ์) เพื่อปิดระบบด้วยsystemd(ไม่ใช้acpid) ได้อย่างไร

1
- สลับสวิตช์ของ "systemctl"
ตามที่ระบุไว้ในหน้าคน systemctl --now enable servicename ควรเปิดใช้งานและเริ่มบริการ แต่มันก็ไม่ได้ผลสำหรับฉัน ในขณะที่การส่งออกของ: systemctl is-enabled เปิดใช้งาน systemctl is-active ยังคงไม่ทำงานสำหรับบริการ สวิตช์นี้เหมาะกับอะไร? ฉันได้ลองชุดค่าผสมอื่น ๆ เช่น: systemctl enable --now servicename และ: systemctl enable servicename --now แต่ยังคงเหมือนเดิม ผมได้ด้วยตนเองsystemctl start servicenameทุกครั้งแม้ว่าคำสั่งก่อนหน้า (เช่นenableบางส่วน) ดำเนินการประสบความสำเร็จ มันคือการที่การ implentation ของบริการ systemd ของแอพพลิเคชั่นควรสนับสนุนการใช้คุณสมบัตินี้ในไฟล์หน่วย; บริการที่มีชื่อเสียงหลายคนไม่ปฏิบัติตามนั่นทำให้ฉันคิดว่ามันไร้ประโยชน์อย่างสิ้นเชิง ฉันคิดว่ามันมากกว่า

3
การเริ่มต้น Apache เป็นบริการที่เลิกกับ SIGWINCH
เมื่อทำงานservice apache startฉันเห็นในล็อกไฟล์รายการนี้: [mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix) OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations [core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd' [mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully และบริการapacheไม่เริ่มทำงาน ฉันสามารถหาได้จากอินเทอร์เน็ตในความSIGWINCHหมายของ [ Window size change] แต่มันไม่ได้ช่วยฉันในกรณีนี้ ไฟล์/etc/systemd/system/apache.service: [Unit] Description=The Apache Webserver [FaF Compiled] After=network.target …

1
systemd-networkd - วิธีบังคับให้มีการกำหนดค่าใหม่โดยไม่ต้องรีบูต?
บนกล่อง Arch ของฉันฉันมีบริดจ์เครือข่าย เป้าหมายคือการลบบริดจ์และใช้อะแดปเตอร์เครือข่ายที่ไม่ได้เชื่อมต่อเท่านั้น ในการดำเนินการดังกล่าวฉันได้ลบไฟล์กำหนดค่า * .netdev และ * .network ทั้งหมดภายใต้/etc/systemd/networkและแทนที่ด้วยไฟล์ง่าย ๆ หนึ่งไฟล์: /etc/systemd/network/lan.network -------------------------------- [Match] eno* [Network] DHCP=ipv4 จากนั้นฉันเริ่มใช้บริการเครือข่ายใหม่โดยsystemctl restart systemd-networkdสันนิษฐานว่านี่จะทำให้ฉันมีเพียงแค่loและeno*อินเตอร์เฟส แต่น่าเสียดายที่สิ่งนี้ไม่มีผล ดูอย่างรวดเร็วที่ip linkยังคงแสดงให้เห็นว่าอินเตอร์เฟซบริดจ์ขึ้นและใช้งาน เนื่องจากสถานะการออนไลน์ในกรณีนี้ไม่สำคัญฉันเพิ่งรีบูตเครื่องซึ่งแก้ไขปัญหา ถึงกระนั้นฉันก็คิดว่าการรีบูตเครื่องไม่ควรจำเป็นสำหรับสิ่งนี้ ฉันพลาดทำอะไร

2
เรียกใช้คำสั่งโดยพลการเมื่อบริการล้มเหลว
ฉันต้องการเรียกใช้สคริปต์บางอย่างเมื่อบริการล้มเหลว สิ่งที่ใกล้เคียงที่สุดที่ฉันเห็นคือFailureAction=ตัวเลือก (ใต้[Service]หัวข้อ) แต่มีเพียงคำสั่งรีบูต
12 systemd 

4
ฉันจะดูได้อย่างไรว่าเซอร์วิส systemd เริ่มทำงาน / หยุด / รีสตาร์ทแล้ว?
ฉันมีบริการ (เขียนด้วยตัวเอง) ที่ทำงานบนเซิร์ฟเวอร์ Debian (Jessie) และมีบันทึกของตัวเองบริการเพื่อแสดงว่าเริ่มต้นใหม่ในเวลาใดเวลาหนึ่ง ไม่มีข้อบ่งชี้ของ segfault หรือความผิดพลาดอื่น ๆ ดังนั้นตอนนี้ฉันกำลังพยายามคิดออกว่าแอปพลิเคชันใดๆ ที่ล้มเหลวอย่างเงียบ ๆและได้รับการตอบกลับจาก systemd หรือไม่ว่าผู้ใช้บริการเริ่มต้นใหม่โดยsystemctlตั้งใจ ประวัติเชลล์ไม่แสดงกิจกรรมดังกล่าว แต่ไม่ได้ข้อสรุปเนื่องจากexport HISTCONTROL=ignorebothและเนื่องจากเซสชัน SSH อาจเพิ่งหมดเวลาเพื่อป้องกันไม่ให้ประวัติทุบตีของล็อกอินก่อนหน้านี้ถูกเขียนลงดิสก์ เซิร์ฟเวอร์ไม่รีบูตในเวลานั้น แต่ฉันคาดหวังว่า systemd เองควรเก็บบันทึกที่ระบุเมื่อเริ่มบริการใหม่โดยมีจุดประสงค์ ด้วยความประหลาดใจของฉันฉันไม่สามารถค้นหาเอกสารใด ๆ (เช่นเพื่อjournalctl) เกี่ยวกับวิธีรับบันทึกดังกล่าว บางโพสต์อื่น ๆ (เช่นที่ไหน / ทำไมไม่มีบันทึกสำหรับผู้ใช้บริการ systemd ปกติ? ) ดูเหมือนจะระบุว่าควรมีข้อความบันทึกเช่นนี้: Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Starting chatty.service... Jan 15 19:28:08 qbd-x230-suse.site systemd[1]: Started …

1
ฉันจะโหลดกลุ่มบริการ systemd ใหม่ได้อย่างไร
ฉันต้องการโหลดใหม่ (ไม่ใช่รีสตาร์ท!) กลุ่มบริการตามเหตุการณ์ ตัวอย่างเช่นถ้าฉันอัปเดตใบรับรอง SSL ของฉันฉันต้องการให้บริการทุกอย่างที่ใช้พวกเขาโหลดใหม่ ( nginxและpostfixนึกถึง) ฉันไม่ต้องการจดจำบริการใดบนเซิร์ฟเวอร์ที่กำหนดให้ใช้ใบรับรอง SSL มันควรจะเพียงพอที่จะจัดกลุ่มเมื่อมีการกำหนดค่า ในทางกลับกันฉันต้องการหลีกเลี่ยงการเปลี่ยนแปลง.serviceไฟล์ที่มาพร้อมกับแพ็คเกจเนื่องจากจะต้องมีการแทรกแซงด้วยตนเองระหว่างการอัพเดต ฉันจะทำสิ่งนั้นให้สำเร็จได้อย่างไร มีตัวเลือกในการหยุดกลุ่มของบริการตามคำขอแต่สิ่งนี้จะทำให้ไม่สามารถเข้าถึงได้เป็นครั้งที่สองหรือสองหรือแย่กว่านั้น - พวกเขาอาจอยู่จนกว่าจะได้รับการแก้ไข ฉันไม่สามารถจ่ายได้
12 systemd 

5
ระบบปฏิเสธ SSH และติดอยู่ที่ 'บูตเครื่อง' หลังจากการติดตั้ง systemd
ฉันมีปัญหาซึ่งสามารถทำซ้ำได้บน Linux Ubuntu VMs (14.04 LTS) ที่สร้างขึ้นใน Azure หลังจากติดตั้งsystemdแพคเกจผ่านสคริปต์ระบบจะปฏิเสธการเชื่อมต่อ ssh ใหม่อย่างไม่ จำกัด ระบบกำลังบูท การเชื่อมต่อถูกปิดโดย xxx.xxx.xxx.xxx การเชื่อมต่อ ssh ที่ใช้งานอยู่จะยังคงอยู่ ไม่มี/etc/nologinไฟล์อยู่ในระบบ ตัวเลือกเดียวที่ฉันเห็นคือการรีเซ็ตแบบยากซึ่งแก้ปัญหาได้ แต่ฉันจะหลีกเลี่ยงได้อย่างไร นี่คือสคริปต์ที่ฉันใช้: #!/bin/bash # Script input arguments user=$1 server=$2 # Tell the shell to quote your variables to be eval-safe! printf -v user_q '%q' "$user" printf -v server_q '%q' "$server" …
12 linux  ssh  systemd 

4
systemd“ เป็นอันตราย” หรือไม่ [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เยี่ยมชมฟอรัมออนไลน์ที่พูดคุยเกี่ยวกับ Debian และ Xubuntu ฉันเห็นผู้ใช้บางคนที่เพิ่มบรรทัดนี้ในฟิลด์ลายเซ็น: ... ไม่มี systemd ... บรรทัดนี้แสดงให้เห็นถึงความภาคภูมิใจ (ดูเหมือนฉัน) จากวิกิพีเดีย : systemd เป็นชุดของ daemons การจัดการระบบ, ไลบรารีและยูทิลิตี้ที่ออกแบบมาเพื่อการจัดการกลางและแพลตฟอร์มการกำหนดค่าสำหรับระบบปฏิบัติการคอมพิวเตอร์ลีนุกซ์ ดังนั้นsystemdดูเหมือนจะไม่เลวร้ายดังนั้นทำไมผู้คนเขียนด้วยความภาคภูมิใจที่พวกเขาไม่ใช้มัน อาจsystemdเป็นอันตรายหรือไม่ดีสำหรับคุณ
11 systemd  init 

0
ปลดล็อคล็อกอิน gnome-keyring บน i3wm autologin
ปัญหา ดูเหมือนว่าคำถามนี้จะถูกถามเป็นพัน ๆ ครั้ง แต่ฉันก็ยังไม่สามารถปลดล็อครหัสการเข้าสู่ระบบของฉันได้โดยอัตโนมัติ พื้นหลัง ฉันโดยอัตโนมัติเข้าสู่ระบบ chvt และ startx พร้อมเส้นเหล่านี้เข้าไปใน i3wm ที่แล้วยิงขึ้นi3lock การแก้ไข ฉันต้องการให้พวงกุญแจเข้าสู่ระบบ gnome ของฉันปลดล็อคโดยอัตโนมัติเมื่อฉันเข้าสู่ระบบ (หรือเมื่อฉันปลดล็อค i3lock) แต่ฉันไม่สามารถใช้คำแนะนำใด ๆ ที่ฉันพบออนไลน์ได้สำเร็จ ผลการวิจัย วิกิพีเดียซุ้มประตูมีทั้งสิ่งที่เกี่ยวกับเรื่องนี้ซึ่งผมพยายาม แต่ล้มเหลวที่จะทำ ฉันได้ดูคำถาม / คำตอบอื่น ๆ อีกมากมายซึ่งมีคำแนะนำที่คล้ายคลึงกันซึ่งไม่มีประโยชน์ สิ่งหนึ่งที่ฉันสังเกตุคือฉันไม่สามารถปลดล็อครหัสผ่านเข้าสู่ระบบecho $LOGINPASSWORD | gnome-keyring-daemon --unlockได้ journalctlรายงาน Jul 07 20:08:16 ERIS gnome-keyring-daemon[26585]: failed to unlock login keyring on startup เมื่อฉันเปิดม้านำ้าเพื่อปลดล็อคด้วยตนเองรายงานว่ารหัสผ่านการเข้าสู่ระบบมีการเปลี่ยนแปลงและขอให้ฉันป้อนรหัสผ่านเก่าของฉัน รายงาน …

3
BunsenLabs (Debian derrivative) จะไม่ปิดลง (ไม่สามารถเริ่ม poweroff.target: การทำธุรกรรมเป็นอันตราย)
ฉันสะดุดพฤติกรรมแปลก ๆ ของ BunsenLabs GNU / Linux ของฉัน (ซึ่งใช้ภาษาเดเบียน) บางครั้งฉันไม่สามารถปิดระบบปฏิบัติการ ฉันไม่สำคัญว่าฉันจะใช้sudo poweroffหรือวิธี GUI นี่คือสิ่งที่ฉันได้รับหลังจากใช้งานsudo poweroff: Failed to start poweroff.target: Transaction is destructive มีวิธีแก้ปัญหาหรือไม่? ทำไมมันเกิดขึ้น นี่คือเนื้อหาของฉัน/lib/udev/rules.d/70-power-switch.rules: ACTION=="remove", GOTO="power_switch_end" SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="acpi", TAG+="power-switch" SUBSYSTEM=="input", KERNEL=="event*", KERNELS=="thinkpad_acpi", TAG+="power-switch" LABEL="power_switch_end"

3
วิธีปิดใช้งานรายการบันทึกการตรวจสอบสำเร็จใน dmesg
เวอร์ชั่นย่อ: จะปิดการใช้งานข้อความตรวจสอบ (dmesg) ในระบบ Fedora ได้อย่างไร? ระบบ Fedora ยังคงบันทึกข้อความ "การตรวจสอบ: ความสำเร็จ" ใน dmesg - ในแบบสุดขั้วที่ dmesg ไม่สามารถใช้งานได้เพราะเต็มไปด้วยข้อความเหล่านี้ ( dmesg | grep -v auditว่างเปล่า) ข้อความเหล่านี้ไร้ประโยชน์อย่างสมบูรณ์เนื่องจากต้องการแจ้งให้ผู้ใช้ทราบว่ากระบวนการภายในทุกวันประสบความสำเร็จ (ซึ่งอาจเป็นที่สนใจเมื่อทำการดีบั๊ก แต่เป็นเพียงเสียงรบกวนในกรณีนี้) แม้แต่อินเตอร์เฟสบรรทัดคำสั่ง (เมื่อเปลี่ยนเป็น non-X tty ด้วยCtrl+ Alt+ F2) ก็ไม่สามารถใช้งานได้เนื่องจากมันยุ่งเหยิงกับข้อความตรวจสอบเหล่านี้อยู่เสมอมันเป็นไปไม่ได้ที่จะอ่านเอาต์พุตของคำสั่งที่รันโดยผู้ใช้จริง ตัวอย่างเช่นหลังจากป้อนชื่อผู้ใช้ (เข้าสู่ระบบ) ข้อความตรวจสอบจะถูกพ่นออกมา (บอกผู้ใช้ว่าสิ่งที่จัดรูปแบบ / พิมพ์สำเร็จ): audit: type = 1131 audit (1446913801.945: 10129): pid = 1 …

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