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

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

2
วิธีการตั้งค่าข้อความไดนามิกของวัน (motd) ใน Debian Jessie 8.2 สำหรับ ssh?
ฉันต้องการมี motd แบบไดนามิก แต่ฉันไม่สามารถหาวิธีที่จะทำ ฉันพยายามสิ่งที่ฉันพบเพิ่ม/etc/update-motd.d/00-header, 10-sysinfo, 90-footerและ symlinking ไป/etc/motd /var/run/motd.dynamic, /run/motd.dynamic, หรือ/run/motd/var/run/motd ฉันมีบรรทัดเหล่านี้ใน/etc/pam.d/sshd: # Print the message of the day upon successful login. # This includes a dynamically generated part from /run/motd.dynamic # and a static (admin-editable) part from /etc/motd. session optional pam_motd.so motd=/run/motd.dynamic session optional pam_motd.so noupdate ฉันยังสับสนกับ systemd …
16 debian  ssh  systemd  motd 

3
หน่วยผู้ใช้ Systemd ที่ขึ้นอยู่กับหน่วยระบบ (sleep.target)
ฉันอ่านหมอและมันก็ยังไม่ชัดเจนสำหรับฉันไม่ว่าจะเป็นไปได้ที่จะสำเร็จ: บริการที่กำหนดใน~/.config/systemd/user/task.serviceนั้นขึ้นอยู่กับระบบsleep.target( ~/.config/systemd/user/sleep.target.wants/task.service) ตอนนี้ฉันคาดหวัง task.serviceจะเริ่มเมื่อฉันวิ่ง$ systemctl suspendแต่task.serviceยังไม่เริ่ม ฉันใช้เดเบียนกับ systemd รุ่น 208 systemd --userกำหนดค่ามากหรือน้อยตามที่อธิบายไว้ใน ArchWiki ฉันสงสัยว่าสถานการณ์ของฉันอาจจะนำมาใช้กับ systemd ที่ทั้งหมดหรือมี--systemและ--userสมบูรณ์แยกจากการออกแบบเพื่อให้--userหน่วยอาจจะไม่พึ่งพาของ--systemหน่วย ในกรณีที่เป็นไปได้สิ่งที่อาจเป็นปัญหาในกรณีของฉัน?
16 systemd 

2
แจ้งรหัสผ่านในระหว่างการบู๊ตด้วยเซอร์วิส systemd
สิ่งนี้เกี่ยวข้องกับ Arch Linux (และอาจใช้การแจกจ่ายอื่น ๆsystemd) ฉันต้องการติดตั้งพาร์ทิชัน TrueCrypt ตอนบูท กับเก่านี้เป็นคนน่ารักตรงไปตรงมากับสคริปต์เรียกได้ว่าsysvinitrc.local ฉันได้ไปในปัจจุบันของฉันด้วยการหักหลังฟอรั่ม Arch มีอีกเป็นด้ายที่ด้าย systemd-devel นี้มีการพูดคุยเกี่ยวกับการเป็น "มีวิธีการแก้ปัญหา" แต่มันไม่ได้เป็นที่ชัดเจนให้กับฉันว่ามันเป็นจริงและ OP มีโพสต์ล่าสุดระบุว่าเขาไม่สามารถที่จะบรรลุเป้าหมายของเขา จากหน้าตาของมันบุคคลนี้กำลังทำอยู่ แต่กำลังมองหาวิธีปิดข้อความการบูตอย่างต่อเนื่องในขณะที่เขาพิมพ์รหัสผ่าน ฉันโพสต์ที่นั่นและขอให้เขาโพสต์.serviceไฟล์จริงของเขา ในการค้นหาค่อนข้างน้อยคนพูดถึงว่าพวกเขาประสบความสำเร็จหรือเป็นไปได้ แต่ไม่ได้ระบุว่าโซลูชันคืออะไร ฉันเท่าที่สามารถปลดล็อกพาร์ติชันจากบรรทัดคำสั่งผ่านsystemdบริการ (ซึ่งจะทำให้ฉันมีความสามารถในการ dismount โดยอัตโนมัติเมื่อปิด / รีบูต) แต่ฉันต้องทำด้วยตนเองเมื่อเข้าสู่ระบบฉัน ' ชอบกระบวนการบู๊ตเพื่อหยุดและขอรหัสผ่านให้ฉัน นี่คือสคริปต์ปัจจุบันของฉัน: [Unit] Description=Truecrypt Setup for vault #DefaultDependencies=no #Conflicts=umount.target #Before=umount.target #After=systemd-readahead-collect.service systemd-readahead-replay.service #After=cryptsetup.target [Service] Type=oneshot RemainAfterExit=yes #StandardInput=tty-force ExecStart=/bin/sh -c …

2
วิธีเขียนไฟล์ systemd .service ที่รัน systemd-tmpfiles
ฉันจำเป็นต้องเรียกใช้systemd-tmpfiles --createในระหว่างกระบวนการบูตด้วย systemd distro ดังนั้นฉันต้องสร้างไฟล์ systemd .service ให้ทำงานนี้ ในคำถามนี้คุณสามารถอ่านรายละเอียดทั้งหมดเกี่ยวกับสิ่งที่ฉันต้องการและทำไม: systemd-tmpfiles ทำงานอย่างไร ฉันได้อ่านเอกสารเกี่ยวกับเรื่องนี้แล้วและฉันกำลังเขียนแบบทดสอบต่อไปนี้: [Unit] Description=Execute tmpfiles to disable usb-wakeup # see details in the link above Requires=multi-user.target # see details in the link above After=multi-user.target # see details in the link above [Service] Type=oneshot ExecStart=/usr/bin/systemd-tmpfiles --create [Install] WantedBy=multi-user.target แต่ฉันไม่แน่ใจเพราะsystemd-tmpfilesไม่ใช่โปรแกรมที่ง่าย แต่เป็น systemd …

3
เซอร์วิส Systemd Unit รีสตาร์ทหากเซอร์วิสอื่นเริ่มทำงานหรือโหลดซ้ำ
ฉันต้องการทราบว่ามีวิธีในSystemdการรีสตาร์ทA.service( After) เมื่อB.serviceเริ่มต้นหรือโหลดใหม่ (โหลดการกำหนดค่าใหม่เท่านั้น) หากเป็นไปได้โดยไม่ต้องแก้ไขB.serviceซึ่งติดตั้งและอัปเกรดโดยระบบ A.serviceควรเริ่มต้นแม้ว่าB.serviceจะไม่ได้ติดตั้งปิดใช้งานหรือหยุด A.service: [Unit] After = B.service network-online.target Wants = B.service [Service] Type=oneshot ExecStart = /script.sh start ExecStop = /script.sh stop RemainAfterExit=yes [Install] WantedBy = network-online.target B.service: [Unit] After=syslog.target network.target [Service] Type=forking ExecStart=/cmd start ExecStop=/cmd stop ExecReload=/cmd reload PIDFile=/var/run/cmd.pid [Install] WantedBy=multi-user.target
16 systemd 

1
ไม่สามารถเริ่มบริการได้
ฉันได้สร้างบริการ systemd: [Unit] Description=My service [Service] Type=forking ExecStart=/bin/sh $HOME/theFolder/run.sh Restart=on-failure [Install] WantedBy=multi-user.target Alias=mine.service ฉันวางไว้ในโฟลเดอร์ / etc / systemd / system และตั้งชื่อมันว่า mine.service ถ้าฉันใช้sudo service mine startมันให้ฉัน: ไม่สามารถเริ่มต้น mine.service.Unit mine.service ไม่พบ --- ปรับปรุง ----- ฉันเรียกใช้ก่อนsudo systemctl daemon-reloadและตอนนี้ไม่ได้ให้ข้อความใด ๆ แก่ฉัน แต่บริการยังไม่เริ่มทำงาน
16 systemd  services 

1
ฉันจะปิดเซิร์ฟเวอร์ ssh ได้อย่างไร?
ฉันปิดการใช้งานเซิร์ฟเวอร์ ssh ด้วย systemctl ปิดการใช้งาน ssh แล้วรีบูต หลังจากรีบูตฉันยังสามารถเข้าสู่เซิร์ฟเวอร์ระยะไกลผ่าน ssh ฉันใช้ systemctl status ssh เพื่อตรวจสอบสถานะเซิร์ฟเวอร์และไม่ทำงาน $ systemctl -a | grep ssh ssh.service loaded inactive dead OpenBSD Secure Shell server ssh@3-192.168.0.120:22-192.168.0.104:31079.service loaded active running OpenBSD Secure Shell server per-connection daemon (192.168.0.104:31079) system-ssh.slice loaded active active system-ssh.slice ssh.socket loaded active listening OpenBSD Secure …
15 systemd  sshd 

1
สับสนเกี่ยวกับ“ /etc/init.d” และบริการใน“ / lib / systemd / system”
ฉันยังใหม่กับโลกของลินุกซ์ดังนั้นฉันจึงขอโทษสำหรับสิ่งผิดปกติ ฉันพยายามเรียกใช้ Mongo DB บนเครื่อง Debian 8.5 เมื่อฉันติดตั้งแพคเกจ (สร้างไว้ล่วงหน้าจาก percona.com) ฉันสังเกตเห็นไฟล์ต่อไปนี้: /etc/init.d/mongod (1) /lib/systemd/system/mongod.service (2) เกี่ยวกับ /etc/init.d/mongod ฉันเข้าใจว่าสิ่งนี้เรียกว่า (ตราบใดที่มีการลงทะเบียนผ่านupdate-rc.d) ที่บูต / ในสถานะระบบอื่น ๆ (ไม่ต้องการรับข้อมูลทางเทคนิคเกี่ยวกับเรื่องนี้ฉันดูดซับข้อมูลจำนวนมากและสิ่งนี้ดูมีความสำคัญน้อยกว่า) นี่เป็นสิ่งที่ดีที่สุดสำหรับฉัน สคริปต์ทำการเริ่มต้นจำนวนมากและเปิด mongo daemon ในที่สุด มันดูเหมือนว่าจะมี“ทริกเกอร์” สำหรับการเริ่มต้น, หยุด, รีสตาร์ท ฯลฯ sudo service mongod <action>และเท่าที่ผมเข้าใจว่าฉันสามารถเรียกผู้ที่มี เกี่ยวกับ /lib/systemd/system/mongod.service ไฟล์นี้ดูเหมือนจะทำสิ่งเดียวกัน (เช่นเรียกใช้ mongo) แต่มีการกำหนดค่าน้อยกว่าเพียงหนึ่งบรรทัดในพารามิเตอร์ ExecStart: [Unit] Description=MongoDB (High-performance, schema-free document-oriented …

4
มีวิธีมาตรฐานในการเริ่มและหยุดบริการบน Linux หรือไม่?
จนกระทั่งเมื่อเร็ว ๆ นี้มีวิธีที่ง่ายและมีประสิทธิภาพในการเริ่ม / หยุด / เริ่มบริการใหม่: service nginx start|stop|restart นี้ทำงานที่ดีเลิศสำหรับหลายปีดังนั้น ... จนกระทั่งบางกางเกงสมาร์ทตัดสินใจที่จะปรับปรุงพวกเขาและตอนนี้ฉันกำลังหันหน้าไปกับระบบ Debian / Ubuntu ที่serviceสคริปต์ไม่ทำอะไรเลย (ตามที่ฉันควรจะใช้สิ่งที่ชอบsystemctl start nginx.service(มากอีกต่อไป ไม่ทำงานอัตโนมัติให้เสร็จสมบูรณ์ ... ) คำถามของฉันอ้างถึง Debian และ Ubuntu เป็นพิเศษ แต่มันจะมีประโยชน์ในการครอบคลุม CentOS / RedHat distros ด้วย ดังนั้นมีบางสิ่งที่สามารถช่วยฉันจากการเปลี่ยนแปลงในวาระนี้ได้หรือไม่? ในกรณีที่มันไม่ชัดเจนฉันกำลังมองหาวิธีที่สอดคล้องกันในการจัดการกับสิ่งเหล่านั้นซึ่งจะทำงานบน Debian 7.x, 8.x, Ubuntu LTS ล่าสุดและ non-LTS PS อยู่นอกขอบเขตของคำถามที่เฉพาะเจาะจงนี้ แต่ความรุ่งโรจน์พิเศษที่ได้รับหากการแก้ปัญหาจะครอบคลุมส่วนที่เปิดใช้งานและปิดการใช้งานสำหรับบริการ

2
ปัญหาการพิมพ์ด้วยบริการ ArchLinux และ CUPS
สองสามวัน (ฉันสงสัยว่าตั้งแต่ฉันอัพเกรดเป็น gnome 3.14) ใน ArchLinux ฉันไม่สามารถพิมพ์ได้อีก ถ้าฉันเปิดแผงการพิมพ์ของศูนย์ควบคุม gnome ฉันได้รับข้อความเช่น (แปลจากภาษาอิตาลี): "ดูเหมือนว่าบริการระบบสำหรับการพิมพ์ไม่พร้อมใช้งาน" ดังนั้นจาก terminal ฉันลอง: $ sudo systemctl start cups Failed to start cups.service: Unit cups.service failed to load: No such file or directory. ฉันยังลองติดตั้งถ้วยอีกครั้ง แต่ก็ไม่มีโชค ฉันลองไปสำรวจและลองใช้วิธีแก้ปัญหาต่าง ๆ ที่เสนอ แต่ก็ไม่สามารถใช้งานได้สำหรับฉัน

4
systemd-tmpfiles ทำงานอย่างไร
ฉันพยายามเปลี่ยนค่าของการ/sys/bus/usb/devices/4-3/power/wakeupบู๊ตทุกครั้ง (4-3 ตามที่ฉันlsusbเป็นรหัสแป้นพิมพ์) ค่าเริ่มต้นคือ: # cat /sys/bus/usb/devices/4-3/power/wakeup enabled การแก้ไขแบบ "ออนไลน์" แบบคลาสสิกทำงานได้ตามที่คาดไว้: # echo disabled > /sys/bus/usb/devices/4-3/power/wakeup # cat /sys/bus/usb/devices/4-3/power/wakeup disabled ฉันใช้ systemd distro ดังนั้นฉันต้องการใช้systemd-way เพื่อแก้ไข "temp files" ฉันได้สร้างไฟล์ต่อไปนี้: # cat /etc/tmpfiles.d/disable-usb-wakeup.conf w /sys/bus/usb/devices/4-3/power/wakeup - - - - disabled แต่หลังจากบูตทุกครั้งฉันยังคงมีค่าเริ่มต้นในไฟล์นี้ (เปิดใช้งานเช่น) ฉันกำลังทำอะไรผิดหรือเปล่า? แก้ไข: นี่คือการทดสอบอื่น: # cat /etc/tmpfiles.d/scheduler.conf w /sys/block/sda/queue/scheduler - - …

1
ตั้งค่า WorkingDirectory โดยใช้ตัวแปร
ฉันจะตั้งค่า Service WorkingDirectory โดยใช้ตัวแปรสภาพแวดล้อมได้อย่างไร นี่คือตัวอย่างการกำหนดค่าบริการ: [Service] Environment=MYWORKINGDIR=/tmp WorkingDirectory=${MYWORKINGDIR} not an absolute pathนี้จะสร้างข้อผิดพลาดตามสายของ การเพิ่มเครื่องหมายสแลชไปที่จุดเริ่มต้น "แก้ไข" ข้อผิดพลาดนั้น แต่ไม่พบพา ธ : [Service] Environment=MYWORKINGDIR=/tmp WorkingDirectory=/${MYWORKINGDIR} เป็นไปได้ไหม เอกสารไม่ชัดเจนว่าคำสั่งใดสามารถ / ไม่สามารถใช้ตัวแปร env http://www.freedesktop.org/software/systemd/man/systemd.exec.html
15 systemd 

7
ทำไม systemd-udev pegging CPU ของฉัน?
ฉันสังเกตเห็นว่าหนึ่งในแกนหลักของแล็ปท็อปสี่คอร์ได้รับการตรึงและอุณหภูมิสูงมาก ฉันพบสิ่งนี้ในtop: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 359 root 20 0 188684 147228 1552 R 99.4 5.0 111:19.91 systemd-udevd 20011 root 20 0 188320 147604 2076 S 11.0 5.0 0:00.33 systemd-udevd 11053 dotanco+ 20 0 3030036 918672 49608 S 9.6 31.2 280:40.65 firefox …

1
วิธีหลีกเลี่ยง / usr / bin / env ถูกทำเครื่องหมายใน systemd ล็อกเป็นไฟล์เรียกทำงาน
ฉันได้สร้างบริการ systemd เรียกใช้โปรแกรมประยุกต์คราวบนพื้นฐานของข้อมูลที่พบในบทความนี้ บทความฉบับย่อแนะนำให้หลีกเลี่ยงเชลล์สคริปต์แรปเปอร์และเรียกใช้จาวาโดยตรงด้วยสภาพแวดล้อมและบรรทัดคำสั่งที่เหมาะสม นี่คือบริการทั้งหมดของ systemd (โดยแทนที่ชื่อแอพ): [Unit] Description=MyApp Tomcat Container [Service] EnvironmentFile=/opt/myapp/environment ExecStart=/usr/bin/env ${JAVA_HOME}/bin/java $JAVA_OPTS $CATALINA_OPTS \ -classpath ${CLASSPATH} \ -Dcatalina.base=${CATALINA_BASE} \ -Dcatalina.home=${CATALINA_HOME} \ -Djava.endorsed.dirs=${JAVA_ENDORSED_DIRS} \ -Djava.io.tmpdir=${CATALINA_TMPDIR} \ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties \ -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ org.apache.catalina.startup.Bootstrap start ExecStop=/usr/bin/env $JAVA_HOME/bin/java $JAVA_OPTS \ -classpath $CLASSPATH \ -Dcatalina.base=$CATALINA_BASE \ -Dcatalina.home=$CATALINA_HOME \ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ -Djava.io.tmpdir=$CATALINA_TMPDIR \ …

3
การเขียนเซอร์วิส systemd ที่จะดำเนินการเมื่อดำเนินการต่อ
แล็ปท็อป Dell ของฉันอยู่ภายใต้ข้อบกพร่องนี้ด้วยเคอร์เนล 3.14 ในฐานะที่เป็นวิธีแก้ปัญหาฉันเขียนสคริปต์ง่าย ๆ / usr / bin / สว่างแก้ไข: #!/bin/bash echo 0 > /sys/class/backlight/intel_backlight/brightnes (และทำให้ปฏิบัติการ: chmod +x /usr/bin/brightness-fix) และบริการ systemd เรียกมันว่าจะดำเนินการเมื่อเริ่มต้น: /etc/systemd/system/brightness-fix.service [Unit] Description=Fixes intel backlight control with Kernel 3.14 [Service] Type=forking ExecStart=/usr/bin/brightness-fix TimeoutSec=0 StandardOutput=syslog #RemainAfterExit=yes #SysVStartPriority=99 [Install] WantedBy=multi-user.target และเปิดใช้งาน: systemctl enable /etc/systemd/system/brightness-fix.service มันใช้งานได้อย่างมีเสน่ห์และฉันสามารถควบคุมความสว่างของหน้าจอได้ตามต้องการ ปัญหาเกิดขึ้นเมื่อแล็ปท็อปดำเนินการต่อหลังจากเข้าสู่โหมดสลีป (เช่นเมื่อปิดริมฝีปากแล็ปท็อป): การควบคุมความสว่างไม่ทำงานอีกต่อไปเว้นแต่ฉันจะเรียกใช้สคริปต์ …
15 systemd  laptop 

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