ผู้จัดการระบบ systemd รีลีส 244

หลังจากสามเดือนของการพัฒนา นำเสนอ การเปิดตัวผู้จัดการระบบ systemd 244.

การเปลี่ยนแปลงที่สำคัญ:

  • เพิ่มการสนับสนุนสำหรับตัวควบคุมทรัพยากร cpuset ตาม cgroups v2 ซึ่งมีกลไกสำหรับการเชื่อมโยงกระบวนการกับ CPU เฉพาะ (การตั้งค่า “AllowedCPUs”) และโหนดหน่วยความจำ NUMA (การตั้งค่า “AllowedMemoryNodes”);
  • เพิ่มการรองรับสำหรับการโหลดการตั้งค่าจากตัวแปร SystemdOptions EFI สำหรับการกำหนดค่า systemd ซึ่งช่วยให้คุณปรับแต่งลักษณะการทำงานของ systemd ในสถานการณ์ที่การเปลี่ยนตัวเลือกบรรทัดคำสั่งเคอร์เนลเป็นปัญหาและการกำหนดค่าจากดิสก์อ่านช้าเกินไป (เช่น เมื่อคุณต้องการกำหนดค่าตัวเลือก ที่เกี่ยวข้องกับลำดับชั้น cgroup) หากต้องการตั้งค่าตัวแปรใน EFI คุณสามารถใช้คำสั่ง 'bootctl systemd-efi-options';
  • เพิ่มการรองรับหน่วยสำหรับการโหลดการตั้งค่าจากไดเรกทอรี “{unit_type}.d/” ที่เกี่ยวข้องกับประเภทหน่วย (เช่น “service.d/”) ซึ่งสามารถใช้เพื่อเพิ่มการตั้งค่าที่ครอบคลุมไฟล์หน่วยทั้งหมดของประเภทที่กำหนดที่ ครั้งหนึ่ง;
  • สำหรับหน่วยบริการ มีการเพิ่มโหมดการแยกแซนด์บ็อกซ์ใหม่ ProtectKernelLogs ซึ่งช่วยให้คุณสามารถปฏิเสธการเข้าถึงโปรแกรมไปยังบัฟเฟอร์บันทึกเคอร์เนล ซึ่งสามารถเข้าถึงได้ผ่านการเรียกระบบ syslog (เพื่อไม่ให้สับสนกับ API ที่มีชื่อเดียวกันที่ให้ไว้ใน libc) หากเปิดใช้งานโหมด การเข้าถึงแอปพลิเคชันไปยัง /proc/kmsg, /dev/kmsg และ CAP_SYSLOG จะถูกบล็อก
  • สำหรับหน่วยต่างๆ มีการเสนอการตั้งค่า RestartKillSignal ซึ่งช่วยให้คุณสามารถกำหนดจำนวนสัญญาณที่ใช้ในการยุติกระบวนการในระหว่างการรีสตาร์ทงานได้ใหม่ (คุณสามารถเปลี่ยนลักษณะการทำงานของการหยุดกระบวนการในขั้นตอนการเตรียมการสำหรับการรีสตาร์ท)
  • คำสั่ง “systemctl clean” ได้รับการปรับใช้สำหรับใช้กับซ็อกเก็ต เมาท์ และยูนิตสลับ
  • ในระยะเริ่มต้นของการโหลด ข้อจำกัดเกี่ยวกับความเข้มของข้อความเอาท์พุตของเคอร์เนลผ่านการเรียก printk จะถูกปิดใช้งาน ซึ่งช่วยให้บันทึกที่สมบูรณ์มากขึ้นเกี่ยวกับความคืบหน้าในการโหลดถูกสะสมในขั้นตอนเมื่อที่จัดเก็บบันทึกยังไม่ได้เชื่อมต่อ (บันทึก ถูกสะสมอยู่ในบัฟเฟอร์วงแหวนของเคอร์เนล) การตั้งค่าขีดจำกัด printk จากบรรทัดคำสั่งเคอร์เนลจะมีความสำคัญกว่า และอนุญาตให้คุณแทนที่พฤติกรรมของ systemd โปรแกรม Systemd ที่ส่งออกบันทึกโดยตรงไปยัง /dev/kmsg (ซึ่งจะทำในช่วงต้นของขั้นตอนการบูตเท่านั้น) ใช้ข้อจำกัดภายในที่แยกจากกันเพื่อป้องกันการอุดตันของบัฟเฟอร์
  • คำสั่ง 'stop --job-mode=triggering' ได้รับการเพิ่มเข้าไปในยูทิลิตี systemctl ซึ่งช่วยให้คุณสามารถหยุดทั้งหน่วยที่ระบุบนบรรทัดคำสั่งและทุกหน่วยที่สามารถเรียกได้
  • ขณะนี้ข้อมูลสถานะของหน่วยรวมถึงข้อมูลเกี่ยวกับการโทรและหน่วยที่ถูกเรียก
  • คุณสามารถใช้การตั้งค่า “RuntimeMaxSec” ในหน่วยขอบเขตได้ (ก่อนหน้านี้ใช้ในหน่วยบริการเท่านั้น) ตัวอย่างเช่น ขณะนี้ "RuntimeMaxSec" สามารถใช้เพื่อจำกัดเวลาของเซสชัน PAM ผ่านการสร้างหน่วยขอบเขต
    สำหรับบัญชีผู้ใช้ สามารถตั้งค่าขีดจำกัดเวลาผ่านตัวเลือก systemd.runtime_max_sec ในพารามิเตอร์ของโมดูล pam_systemd PAM

  • เพิ่มกลุ่มของการเรียกระบบใหม่ “@pkey” เมื่อจำกัดคอนเทนเนอร์และบริการ ทำให้ง่ายต่อการจัดไวท์ลิสต์การโทรของระบบที่เกี่ยวข้องกับการป้องกันหน่วยความจำ
  • เพิ่มการตั้งค่าสถานะ "w+" ให้กับ systemd-tmpfiles สำหรับการเขียนในโหมดผนวกไฟล์
  • เพิ่มข้อมูลไปยังเอาต์พุตการวิเคราะห์ systemd เกี่ยวกับการกำหนดค่าหน่วยความจำเคอร์เนลตรงกับการตั้งค่า systemd หรือไม่ (เช่น หากโปรแกรมของบริษัทอื่นบางโปรแกรมเปลี่ยนพารามิเตอร์เคอร์เนล)
  • เพิ่มตัวเลือก "--เวลาฐาน" ให้กับ systemd-analyze แล้ว เมื่อระบุ ข้อมูลปฏิทินจะถูกคำนวณโดยสัมพันธ์กับเวลาที่ระบุในตัวเลือกนี้ และไม่สัมพันธ์กับเวลาของระบบปัจจุบัน
  • “journalctl —update-catalog” ช่วยให้มั่นใจถึงความสอดคล้องในลำดับขององค์ประกอบในเอาต์พุต (มีประโยชน์สำหรับการจัดระเบียบบิลด์ที่ทำซ้ำได้)
  • เพิ่มความสามารถในการระบุค่าเริ่มต้นสำหรับการตั้งค่า "WatchdogSec" ที่ใช้ในบริการ systemd ณ เวลาคอมไพล์ ค่าฐานสามารถกำหนดได้ผ่านตัวเลือก "-Dservice-watchdog" (หากตั้งค่าเป็นว่าง Watchdog จะถูกปิดใช้งาน)
  • เพิ่มตัวเลือกการสร้าง "-Duser-path" เพื่อแทนที่ค่า $PATH;
  • เพิ่มตัวเลือก "-u" ("--uuid") ให้กับ systemd-id128 เพื่อส่งออกตัวระบุ 128 บิตใน UUID (การแสดงรูปแบบบัญญัติของ UUID);
  • Build ตอนนี้ต้องการ libcryptsetup เวอร์ชัน 2.0.1 เป็นอย่างน้อย

การเปลี่ยนแปลงที่เกี่ยวข้องกับการตั้งค่าเครือข่าย:

  • Systemd-networkd ได้เพิ่มการรองรับสำหรับการกำหนดค่าลิงก์ใหม่ได้ทันที โดยมีการเพิ่มคำสั่ง "โหลดซ้ำ" และ "กำหนดค่าอุปกรณ์ใหม่ ... " ลงใน networkctl เพื่อโหลดการตั้งค่าใหม่และกำหนดค่าอุปกรณ์ใหม่
  • systemd-networkd ได้หยุดสร้างเส้นทางเริ่มต้นสำหรับลิงก์ IPv4 ในเครื่องที่มีที่อยู่อินทราเน็ต 169.254.0.0/16 (ลิงค์ท้องถิ่น). ก่อนหน้านี้ การสร้างเส้นทางเริ่มต้นสำหรับลิงก์ดังกล่าวโดยอัตโนมัติส่งผลให้เกิดการทำงานที่ไม่คาดคิดและปัญหาการกำหนดเส้นทางในบางกรณี หากต้องการคืนพฤติกรรมเก่า ให้ใช้การตั้งค่า "DefaultRouteOnDevice=yes" ในทำนองเดียวกัน การกำหนดที่อยู่ IPv6 ในเครื่องจะหยุดลงถ้าไม่ได้เปิดใช้งานการกำหนดเส้นทาง IPv6 ในเครื่องสำหรับลิงก์
  • ใน systemd-networkd เมื่อเชื่อมต่อกับเครือข่ายไร้สายในโหมด Ad-hoc การกำหนดค่าเริ่มต้นจะถูกนำมาใช้กับการกำหนดแอดเดรส link-local (link-local)
  • เพิ่มพารามิเตอร์ RxBufferSiz และ TxBufferSize เพื่อกำหนดขนาดของบัฟเฟอร์การรับและส่งของอินเทอร์เฟซเครือข่าย
  • systemd-networkd ดำเนินการโฆษณาเส้นทาง IPv6 เพิ่มเติม ซึ่งควบคุมผ่านตัวเลือก Route และ LifetimeSec ในส่วน "[IPv6RoutePrefix]"
  • systemd-networkd ได้เพิ่มความสามารถในการกำหนดค่าเส้นทาง "next hop" โดยใช้ตัวเลือก "Gateway" และ "Id" ในส่วน "[NextHop]"
  • systemd-networkd และ networkctl สำหรับ DHCP ให้การอัปเดตทันทีของการผูกที่อยู่ IP (สัญญาเช่า) ดำเนินการโดยคำสั่ง 'networkctl renew'
  • systemd-networkd ตรวจสอบให้แน่ใจว่าการกำหนดค่า DHCP ถูกรีเซ็ตเมื่อรีสตาร์ท (ใช้ตัวเลือก KeepConfiguration เพื่อบันทึกการตั้งค่า) ค่าเริ่มต้นของการตั้งค่า SendRelease ได้ถูกเปลี่ยนเป็น "จริง";
  • ไคลเอ็นต์ DHCPv4 ตรวจสอบให้แน่ใจว่ามีการใช้ค่าตัวเลือก OPTION_INFORMATION_REFRESH_TIME ที่ส่งโดยเซิร์ฟเวอร์ หากต้องการขอตัวเลือกเฉพาะจากเซิร์ฟเวอร์ จะมีการเสนอพารามิเตอร์ "RequestOptions" และเพื่อส่งตัวเลือกไปยังเซิร์ฟเวอร์ - "SendOption" ในการกำหนดค่าประเภทของบริการ IP โดยไคลเอ็นต์ DHCP พารามิเตอร์ "IPServiceType" ได้ถูกเพิ่มแล้ว
  • เพื่อทดแทนรายการเซิร์ฟเวอร์ SIP (Session Initiation Protocol) สำหรับเซิร์ฟเวอร์ DHCPv4 จึงมีการเพิ่มพารามิเตอร์ “EmitSIP” และ “SIP” ในฝั่งไคลเอ็นต์ คุณสามารถเปิดใช้งานการรับพารามิเตอร์ SIP จากเซิร์ฟเวอร์ได้โดยใช้การตั้งค่า “UseSIP=yes”
  • เพิ่มพารามิเตอร์ "PrefixDelegationHint" ให้กับไคลเอนต์ DHCPv6 เพื่อขอคำนำหน้าที่อยู่
  • ไฟล์ .network ให้การสนับสนุนการจับคู่เครือข่ายไร้สายด้วย SSID และ BSSID เช่น เพื่อเชื่อมโยงกับชื่อจุดเข้าใช้งานและที่อยู่ MAC ค่า SSID และ BSSID จะแสดงในเอาต์พุต networkctl สำหรับอินเทอร์เฟซไร้สาย นอกจากนี้ ยังได้เพิ่มความสามารถในการเปรียบเทียบตามประเภทเครือข่ายไร้สาย (พารามิเตอร์ WLANInterfaceType)
  • systemd-networkd ได้เพิ่มความสามารถในการกำหนดค่าวินัยในการเข้าคิวเพื่อควบคุมการรับส่งข้อมูลโดยใช้พารามิเตอร์พาเรนต์ใหม่
    NetworkEmulatorDelaySec, NetworkEmulatorDelayJitterSec,
    NetworkEmulatorPacketLimit และ NetworkEmulatorLossRate
    NetworkEmulatorDuplicateRate ในส่วน “[TrafficControlQueueingDiscipline]”

  • systemd-resolved ให้การตรวจสอบที่อยู่ IP ในใบรับรองเมื่อสร้างด้วย GnuTLS

การเปลี่ยนแปลงที่เกี่ยวข้องกับ udev:

  • Systemd-udevd ได้ลบการหมดเวลา 30 วินาทีออกเพื่อบังคับให้ตัวจัดการที่ติดอยู่ยุติการทำงาน ขณะนี้ Systemd-udevd กำลังรอให้ตัวจัดการเสร็จสิ้นซึ่งเวลา 30 วินาทีนั้นไม่เพียงพอที่จะดำเนินการตามปกติในการติดตั้งขนาดใหญ่ (เช่น การหมดเวลาอาจขัดจังหวะการเริ่มต้นไดรเวอร์ในระหว่างกระบวนการสลับพาร์ติชันที่เมาท์สำหรับระบบไฟล์รูท) เมื่อใช้ systemd การหมดเวลาที่ systemd-udevd จะรอก่อนออกสามารถตั้งค่าได้ผ่านการตั้งค่า TimeoutStopSec ใน systemd-udevd.service เมื่อรันโดยไม่มี systemd การหมดเวลาจะถูกควบคุมโดยพารามิเตอร์ udev.event_timeout
  • เพิ่มโปรแกรม fido_id สำหรับ udev ซึ่งระบุโทเค็น FIDO CTAP1
    (“U2F”)/CTAP2 ขึ้นอยู่กับข้อมูลเกี่ยวกับการใช้งานในอดีตและแสดงตัวแปรสภาพแวดล้อมที่จำเป็น (โปรแกรมอนุญาตให้คุณดำเนินการได้โดยไม่ต้องมีรายการสีขาวภายนอกของโทเค็นที่รู้จักทั้งหมดที่เคยใช้ก่อนหน้านี้)

  • ใช้การสร้างกฎการระงับอัตโนมัติของ udev โดยอัตโนมัติสำหรับอุปกรณ์จากรายการสีขาวที่นำเข้าจาก Chromium OS (การเปลี่ยนแปลงช่วยให้คุณสามารถขยายการใช้โหมดประหยัดพลังงานสำหรับอุปกรณ์เพิ่มเติม)
  • มีการเพิ่มการตั้งค่า "CONST{key}=value" ใหม่ลงใน udev เพื่ออนุญาตการแมปค่าคงที่ของระบบโดยตรงโดยไม่ต้องรันตัวจัดการเช็คแยกต่างหาก ขณะนี้รองรับเฉพาะคีย์ "arch" และ "virt" เท่านั้น
  • เปิดใช้งาน CDROM เพื่อเปิดในโหมดไม่ผูกขาดเมื่อดำเนินการร้องขอสำหรับโหมดที่รองรับ (การเปลี่ยนแปลงนี้จะช่วยแก้ปัญหาเกี่ยวกับโปรแกรมที่เข้าถึง CDROM และลดความเสี่ยงของการหยุดชะงักของโปรแกรมเขียนดิสก์ที่ไม่ได้ใช้โหมดการเข้าถึงพิเศษ)

ที่มา: opennet.ru

เพิ่มความคิดเห็น