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

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

3
ฉันจะเปลี่ยนคำฟุ่มเฟื่อยของคำสั่งบริการได้อย่างไร
ฉันใช้ Kali 2 Linux ฉันใช้คำสั่งsystemctlหรือserviceเพื่อเริ่มบริการเช่น Apache ในเวอร์ชั่นก่อนหน้าของ Kali คำสั่งจะพิมพ์ข้อความ "OK" เมื่อเริ่มบริการ แต่ในรุ่นนี้มันแค่หยดกลับไปที่บรรทัดคำสั่งโดยไม่พูดอะไรเลย มีวิธีที่จะเปลี่ยน verbosity หรือทำให้มันทำงานเหมือนรุ่นก่อนหน้านี้?

1
systemd ล้มเหลวในขั้นตอนที่ EXEC วางไข่สคริปต์: ปฏิเสธสิทธิ์การใช้งาน
ฉันกำลังพยายามสร้างบริการ "Hello World" เพื่อที่จะพูด มันถูกเรียกว่าและเป็นร้านที่autologger.service/usr/lib/systemd/system/autologger.service ฉันพยายามsudo service autologger startแต่systemctlส่งคืนมาตรฐาน: Job for autologger.service failed. See 'systemctl status autologger.service' and 'journalctl -xn' for details. เมื่อฉันตรวจสอบ/var/log/messagesฉันเห็นข้อความแสดงข้อผิดพลาดต่อไปนี้: Failed at step EXEC spawning /opt/autologger/placeholder.sh: Permission denied คำถามของฉันคือฉันจะให้สิทธิ์การบริการกับสิ่งใดได้บ้าง นี่คือไฟล์หน่วยบริการ: [Unit] Description=Hello World DefaultDependencies=no Before=shutdown.target reboot.target halt.target [Service] Type=oneshot ExecStart=/opt/autologger/placeholder.sh placeholder.sh ประกอบด้วย #!/bin/bash echo "Hello World"

1
ตั้งค่า PATH สำหรับหน่วย systemd
หนึ่งจะตั้งค่าเส้นทางสำหรับเปลือกที่ไม่ใช่การเข้าสู่ระบบใน CentOS 7 ได้อย่างไร โดยเฉพาะฉันมีหน่วย systemd /usr/local/texlive/2016/bin/x86_64-linuxที่ต้องการในไบนารี ฉันพยายามที่จะตั้งใน/etc/environmentที่มีแต่แล้วเส้นทางของฉันคือPATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATH/usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin ฉันสร้าง/etc/profile.d/texlive.shด้วยexport PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"แต่ใช้งานได้กับเชลล์ล็อกอินเท่านั้น ฉันดูSet Path สำหรับผู้ใช้ทุกคน (ล็อกอินและเชลล์ที่ไม่ได้เข้าสู่ระบบ)แต่ได้พยายามแก้ไขปัญหาข้างต้นแล้ว ฉันดูที่วิธีเพิ่มเส้นทางไปยังระบบ $ PATH สำหรับเชลล์ที่ไม่ใช่การเข้าสู่ระบบของผู้ใช้และเชลล์ล็อกอินบนเดเบียนแต่ไม่มีวิธีแก้ปัญหาที่ยอมรับได้และฉันไม่แน่ใจว่าฉันต้องการแก้ไข/etc/login.defsเพราะอาจมีการเปลี่ยนแปลงในการอัปเดต
13 centos  systemd  path 

4
วิธีเปิดใช้งาน“ ชื่อเครือข่ายอินเตอร์เฟสที่คาดการณ์ได้”
ฉันตัดสินใจที่จะตรวจสอบสิ่งที่ชื่ออุปกรณ์อีเธอร์เน็ตของฉันจะจบลงด้วย แต่ตรงกันข้ามกับคนอื่น distrosเดเบียนดูเหมือนจะไม่ได้เปิดใช้งานการเปลี่ยนแปลงนี้ (หรือถือมันกลับมา?), รักษารูปแบบการตั้งชื่ออินเทอร์เฟซเครือข่ายแบบต่อเนื่องเดิมไว้และทำการเลือกใช้ใหม่ผ่าน net.ifnames = 1 บนบรรทัดคำสั่งเคอร์เนล ปัญหาคือว่าผมจะต้องแก้ไขด้วงสายเคอร์เนลและดูเหมือนว่า overkill สำหรับสิ่งที่สามารถใช้งานได้โดยการแก้ไขไฟล์ มีวิธีอื่นอีกไหม?
12 debian  systemd  udev 

5
คำสั่งไม่ทำงานใน cron (systemctl suspend)
ฉันมีชุด cronjob นี้: * * * * * /usr/bin/systemctl suspend และมันไม่ทำงาน แต่ฉันสามารถเรียกใช้ในเชลล์และใช้งานได้ ฉันไม่เข้าใจสิ่งที่อาจไม่ทำงาน EDIT การ เปลี่ยนเส้นทางข้อผิดพลาดออกเพื่อ/tmp/errorให้สิ่งนี้: Failed to issue method call: Access denied Failed to issue method call: Access denied คำถามของฉันคือ: cronjobs ทำงานเป็นผู้ใช้พิเศษ ( cronตัวอย่าง) ซึ่งจะอธิบายว่าผู้ใช้ของฉันสามารถเรียกใช้คำสั่ง แต่ไม่ใช่cronตัวเองหรือไม่ คำอธิบายเพิ่มเติม: นี่เป็นตัวอย่างเล็กน้อยเพื่อแสดงปัญหาที่ฉันมีในสคริปต์ (ที่เหมาะสมกว่าคำสั่งเดียวที่ให้ไว้ที่นี่) systemctlsystemdเป็นส่วนหนึ่งของ ฉันคิดว่าการรีบูตการปิดการทำงานชั่วคราวกำลังทำงานกับผู้ใช้ที่ไม่ใช่รูsystemdท อย่างไรก็ตามมันทำงานบนระบบของฉัน สุดท้ายผมใช้ Arch Linux และ/bin, /usr/sbin, /sbinมี symlinks …
12 cron  systemd  suspend 

2
ไม่มีการทิ้งหลักหลังจากอัปเกรดเป็น systemd หรือไม่
เมื่อฉันรันโปรแกรมที่ฉันทำงานมันล้มเหลวด้วยข้อความต่อไปนี้: ... Aborted (core dumped) อย่างไรก็ตามไม่มีการถ่ายโอนข้อมูลหลัก คอร์หลักถูกเขียนขึ้นก่อนหน้านี้และฉันจำไม่ได้ว่าฉันเปลี่ยนอะไรที่เกี่ยวข้องกับมัน เมื่อฉันวิ่งulimit -aฉันจะกลับมา $ ulimit -a core file size (blocks, -c) unlimited ... จุดอื่น ๆ ฉันตรวจสอบแล้วว่าผู้ใช้ของฉันสามารถสร้างไฟล์ในไดเรกทอรีปัจจุบันได้ /proc/sys/fs/suid_dumpableฉันอ่านเกี่ยวกับ ปัจจุบันมันถูกตั้งค่าเป็น 0 ในเครื่องของฉัน ฉันพยายามเปลี่ยนเป็น 1 หรือ 2 แต่ไม่แตกต่างกัน ฉันยังพยายามรันโปรแกรมในฐานะ root แต่นั่นก็ไม่ได้สร้างความแตกต่างเช่นกัน น่าเสียดายที่ฉันจำไม่ได้เมื่อฉันสามารถผลิตคอร์ดัลที่ประสบความสำเร็จครั้งล่าสุด

4
นำแผ่นซีดีออกเมื่อปิดเครื่อง
ตกลงดังนั้นฉันมีปัญหาง่าย ๆ : ฉันมีซีดีสดและฉันต้องการให้ซีดีขับออกเมื่อคอมพิวเตอร์รีบูทหรือหยุด การดำเนินการ/usr/bin/eject -mทำให้ซีดีนำออกได้ดี ... ปัญหาคือตามที่คุณคาดหวังสิ่งนี้จะทำให้ระบบปฏิบัติการล่มเพราะตอนนี้ไม่สามารถอ่านไฟล์ใด ๆ ได้ ดังนั้นการรีบูตจะไม่เกิดขึ้นเพราะ/sbin/rebootไม่สามารถเข้าถึงได้ (ฉันพยายามเรียกใช้งานreboot --help > /dev/nullก่อนรีบูต แต่ยังมีไฟล์อื่นที่ยังอ่านไม่ได้ ... ) โดยสรุปปรากฏว่าฉันต้องทำให้ดีดออกเป็นสิ่งสุดท้ายที่เกิดขึ้น ดูเหมือนว่ามันจะsystemdเป็นลูกสุนัขที่ฉันต้องเล่นด้วย ... แต่ฉันเสียเวลาหลายชั่วโมงในชีวิตของฉันที่จะกระตุ้นและแหย่มันและไม่ว่าฉันจะทำอะไรมันไม่เคยไม่ว่าภายใต้สถานการณ์ใด ๆ และฉันก็ไม่รู้ว่าทำไม ฉันลองใช้วิธีการที่แตกต่างกันหลายวิธีejectแต่ก็ไม่มีอะไรเกิดขึ้น ใครช่วยบอกวิธีที่ง่ายที่สุดในการวิ่งได้ejectไหม (ฉันจินตนาการหลังจากนั้นumount.targetจะมีเหตุผล ... )
12 shutdown  systemd 

1
Actkbd เป็นบริการที่มี systemd
ไม่นานมานี้ฉันถามวิธีหยุดเครื่องเล่นเพลงขณะที่หน้าจอล็อคอยู่ คำตอบคือการใช้ actkbd ซึ่งทำงานเหมือนมีเสน่ห์ ตอนนี้ฉันต้องการเพิ่ม actkbd เป็นบริการเพื่อ systemd เพื่อเริ่มโดยอัตโนมัติเมื่อบูท ดังนั้นคุณจะเห็นว่าบริการเริ่มต้นอย่างถูกต้องและจะปรากฏใน htop เช่นกัน เอาท์พุทบางด้านล่าง: [root@hostname init.d]# systemctl start actkbd.service [root@hostname init.d]# systemctl status actkbd.service actkbd.service - Actkbd: Daemon for X-independent shortcuts Loaded: loaded (/etc/systemd/system/multi-user.target.wants/actkbd.service) Active: active (running) since Tue, 10 Apr 2012 17:50:36 +0200; 2s ago Process: 23526 ExecStart=/usr/local/sbin/actkbd -d /dev/input/event3 …
12 systemd 

1
systemctl - รหัสทางออกของบริการและคำอธิบายข้อมูลสถานะ
เมื่อตรวจสอบสถานะการบริการผ่าน systemctl systemctl status docker ผลลัพธ์เป็นสิ่งที่ชอบ ● docker.service - เครื่องมือแอปพลิเคชันคอนเทนเนอร์นักเทียบท่า โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/docker.service; เปิดใช้งาน; ค่าที่ตั้งไว้ล่วงหน้าของผู้ขาย: เปิดใช้งาน) ใช้งานอยู่: ไม่ได้ใช้งาน (ตาย) (ผลลัพธ์: exit-code) ตั้งแต่จันทร์ 2018-03-19 13:52:21 CST; 4 นาที 32 วินาทีที่ผ่านมา เอกสาร: https://docs.docker.com กระบวนการ: 6001 ExecStart = / usr / bin / dockerd -H fd: // (รหัส = ออกจากสถานะ = 205 / …
12 systemd 

1
วิธีเพิ่มขนาดโฟลเดอร์ / tmp ด้วยตนเอง
ฉันไม่มีพื้นที่ว่างเหลืออยู่ใน โฟลเดอร์/ tmpใน Fedora 26 ซึ่งทำให้เกิดปัญหาหลายอย่าง Folder / tmp ใช้ RAM ฟรีทั้งหมด: $ df -h /tmp Filesystem Size Used Avail Use% Mounted on tmpfs 3.9G 3.9G 12k 100% /tmp $ ดังนั้น ฉันจะเพิ่มขนาดของโฟลเดอร์นี้ด้วยตนเองอย่างไรเพื่อให้มีพื้นที่ว่างมากขึ้นโดยไม่ต้องเพิ่ม RAM หรือลบไฟล์จากมัน? คำถามของฉันคล้ายกับสิ่งนี้และสิ่งนี้แต่แตกต่างกัน: ในคำถามของฉันฉันต้องเพิ่มขนาดของโฟลเดอร์ในขณะที่ฉันถึงขนาดสูงสุด ขอบคุณล่วงหน้า.
12 systemd  disk  tmpfs 

2
Systemd: วิธีการทำให้บริการ systemd เริ่มต้นหลังจากเชื่อมต่อเครือข่ายอย่างสมบูรณ์?
พื้นหลัง ฉันกำลังเขียนสคริปต์อย่างง่าย ๆ เพื่อให้ทำงานใน Raspbain บน Raspberry Pi 2 ให้เปิดไฟ LED เพื่อระบุว่าฉันพร้อมที่จะเชื่อมต่อกับ SSH จากคอมพิวเตอร์เดสก์ท็อปของฉัน สคริปต์ไม่สำคัญที่นี่เพียงเพื่อพูดถึงว่าในขณะที่ฉันใช้การควบคุมความถี่เพื่อให้สคริปต์ทำงานวนรอบไม่สิ้นสุดเพื่อเปิดและปิดไฟ LED บ่อยครั้ง นี่คือตัวอย่างของการบริการที่เรียบง่าย อย่างไรก็ตามอย่างน้อยคำตอบที่ได้รับการยอมรับของคำถามนี้แนะนำให้ฉันตั้งค่าประเภทที่ไม่ได้ใช้งาน ดังนั้นไฟล์บริการของฉันดูเหมือนว่า [Unit] Description=Turn on LED after SSH is ready [Service] Type=idle ExecStart=/usr/bin/sshready.py [Install] Wants=network-online.target After=network-online.target ผล บริการทำงานตามที่คาดไว้ อย่างไรก็ตามฉันสังเกตเห็นเมื่อฉันเริ่มฉาบในคอมพิวเตอร์เดสก์ท็อปของฉันทันทีหลังจากที่ LED เปิดการแจ้งเตือนการเข้าสู่ระบบไม่ปรากฏขึ้นอย่างฉับพลัน ดังนั้นฉันจึงตรวจสอบด้วย $ systemd-analyze plot > output.svg ผลแสดงให้เห็น คำถาม ดูเหมือนว่าบริการของฉันจะไม่เริ่มหลังจากnetwork-online.targetเกิดอะไรขึ้นที่นี่และฉันจะแก้ไขได้อย่างไร
12 systemd  startup 

2
วิธีสร้างบริการ systemd เสมือนเพื่อหยุด / เริ่มอินสแตนซ์หลาย ๆ ตัวพร้อมกันได้อย่างไร
systemdผมวางแผนที่จะเป็นเจ้าภาพหลายกรณีของเว็บแอปเหมือนกันสำหรับลูกค้าที่ใช้ ผมอยากที่จะสามารถstopและstartตัวอย่างลูกค้าแต่ละรายโดยใช้systemdเช่นเดียวกับการรักษาเก็บทั้งกรณีลูกค้าเป็นบริการเดียวที่สามารถหยุดและเริ่มต้นด้วยกัน systemdดูเหมือนว่าจะให้หน่วยการสร้างที่ฉันต้องการใช้PartOfและไฟล์เทมเพลตหน่วย แต่เมื่อฉันหยุดบริการหลักบริการลูกค้าลูกจะไม่หยุด ฉันจะทำให้มันทำงานกับ systemd ได้อย่างไร นี่คือสิ่งที่ฉันมี ไฟล์หน่วยหลักapp.service: [Unit] Description=App Web Service [Service] # Don't run as a deamon (because we've got nothing to do directly) Type=oneshot # Just print something, because ExecStart is required ExecStart=/bin/echo "App Service exists only to collectively start and stop App instances" # Keep …
12 ubuntu  systemd 

2
หลังจากส่งคำสั่งปิดระบบเซสชัน ssh จะไม่ยุติลง
เมื่อใดก็ตามที่ฉันส่งคำสั่งเพื่อปิดหรือรีสตาร์ทเซิร์ฟเวอร์ Debian ของฉันเชลล์ของฉันจะหยุดทำงานและไม่ตอบสนอง (ไม่สามารถพิมพ์คำสั่งใด ๆ ) การกระทำแบบเดียวกันกับ Ubuntu ทำให้การปิดเซสชันทำได้อย่างสวยงามดังนั้นฉันจึงไม่มีเทอร์มินัลแบบผูกติดค้างไว้ที่นั่น มีแพคเกจที่ฉันจำเป็นต้องติดตั้งหรือมีการเปลี่ยนแปลงการกำหนดค่าเพื่อที่ฉันจะได้รับพฤติกรรมนี้บน Debian หรือไม่?
12 debian  ssh  systemd  shutdown 

4
มีวิธีตั้งค่าสิทธิ์เพื่อให้กระบวนการสามารถใช้อุปกรณ์เฉพาะได้หรือไม่
อย่างที่คุณสามารถอ่านได้ที่นี่ logind ซึ่งเป็นส่วนหนึ่งของ systemd สามารถตั้งค่าการอนุญาตให้อุปกรณ์บางอย่างสำหรับเซสชันผู้ใช้ นอกจากนี้ยังมีวิดีโอแสดงให้เห็นว่าพฤติกรรมเช่นนี้ทำงานอย่างไรในทางปฏิบัติ กล่าวโดยย่อถ้าคุณเริ่มต้นสมมติว่า amarok และคุณเล่นเพลงบางเพลงคุณจะได้ยินเสียงจนกว่าคุณจะเปลี่ยนไปใช้ผู้ใช้อื่นหรือ TTY ที่คุณมีเพียงพรอมต์การเข้าสู่ระบบ นั่นเป็นเพราะเซสชั่นที่ใช้งานกลายเป็นไม่ได้ใช้งาน ฉันรู้ว่าคุณสามารถเพิ่มผู้ใช้ (หรือผู้ใช้) ในกลุ่มเฉพาะในกรณีนี้ "เสียง" และนั่นจะ 'แก้ไข' ปัญหานี้ แต่ฉันสงสัยว่ามีวิธีแก้ไขปัญหาอื่นหรือไม่ สิ่งที่ฉันต้องการคือการตั้งค่าสิทธิ์บางอย่างสำหรับกระบวนการเพื่อให้สามารถใช้การ์ดเสียงได้ตลอดเวลาแม้ว่าผู้ใช้ทุกคนจะถูกล็อคเซสชันก็ตาม เป็นไปได้ไหม ฉันถามเพราะฉันมักจะฟังเพลงและฉันไม่ต้องการจอมอนิเตอร์ของฉันเป็นส่วนใหญ่ดังนั้นฉันแค่ล็อคหน้าจอ แต่เมื่อฉันล็อคหน้าจอเซสชันที่ใช้งานจะไม่ทำงานและ amarok หยุดเล่น และใช่หน้าจอควรถูกล็อคและไม่เพียงปิด แก้ไข: ฉันไม่คิดว่ามันเป็นเรื่องสำคัญที่ฉันใช้ distro เพราะถ้ามี systemd อยู่บนกระดานมันจะเป็นปัญหาเดียวกันแน่นอน อย่างไรก็ตามฉันใช้ debian sid แต่แพ็คเกจบางอย่างเช่น systemd, udev (และบางส่วนพึ่งพา) มาจากสาขาทดลองและตอนนี้เป็นรุ่น 219-9

3
วิธีปิดใช้งานบริการโดยไม่ใช้ 'systemctl ปิดการใช้งาน'
มีบริการที่ฉันต้องการเรียกใช้เฉพาะเมื่อบริการอื่นล้มเหลว ( [Unit] OnFailure=foo) แต่ฉันไม่ต้องการให้บริการนี้ ( foo) เริ่มทำงานโดยอัตโนมัติเมื่อบูต ทางเลือกหนึ่งกำลังทำงานอยู่systemctl disable fooแต่ฉันกำลังมองหาวิธีอื่น แบ็คกราวด์: ฉันกำลังสร้างอิมเมจระบบปฏิบัติการและฉันไม่ต้องการบูตเครื่องให้รันคำสั่งนั้น ( systemctl disable foo) จากนั้นปิดเครื่องก่อนที่จะประกาศอิมเมจของฉันเป็นครั้งสุดท้าย
12 systemd 

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