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

systemd เป็นการแทนที่ที่ทันสมัยสำหรับ init Linux แบบดั้งเดิม คุณสมบัติหลักของมันรวมถึงความสามารถในการแสดงการพึ่งพาระหว่างการให้บริการและการเริ่มต้นบริการแบบขนานที่ก้าวร้าว

1
ตัวจับเวลา Systemd ไม่เริ่มทำงานหน่วยบริการ
สถานการณ์ ฉันได้เขียนหน่วยบริการที่กำหนดเอง systemd และสคริปต์สหายเปลือกในการต่ออายุใบรับรองจากLet 's เข้ารหัส systemctl start letsencrypt-example_com.serviceการทำงานทุกอย่างดีเมื่อผมทำงาน ฉันต้องการให้มันทำงานโดยอัตโนมัติทุก ๆ 60 วันดังนั้นฉันจึงเขียนหน่วยตัวจับเวลา systemd ปัญหา ฉันวิ่งแล้วsystemctl enable letsencrypt-example_com.timer systemctl start letsencrypt-example_com.timerตัวจับเวลาดูเหมือนว่าจะเริ่มต้น แต่ไม่ใช่บริการ # systemctl status letsencrypt-example_com.timer Created symlink from /etc/systemd/system/timers.target.wants/letsencrypt-example_com.timer to /etc/systemd/system/letsencrypt-example_com.timer. # systemctl start letsencrypt-example_com.timer # systemctl list-timers --all # systemctl list-timers NEXT LEFT LAST PASSED UNIT ACTIVATES n/a …
9 systemd 

2
ฉันจะทำนายคำสั่งปิดระบบได้อย่างไร
มีวิธีที่systemdจะบอกฉันเกี่ยวกับลำดับคร่าวๆที่จะปิดบริการเมื่อฉันปิดระบบทั้งหมดอย่างหมดจดหรือไม่ เนื่องจากsystemdจะปิดสิ่งต่าง ๆ ลงในแบบคู่ขนานฉันขอขอบคุณที่ไม่มีวิธีรู้ลำดับที่แน่นอน แต่มันก็ยังมีประโยชน์มากที่จะรู้ว่าข้อ จำกัด ใดที่systemdจะกำหนดลำดับการปิดระบบโดยเฉพาะอย่างยิ่งในการสร้างภาพข้อมูลบางประเภท แรงจูงใจคือสำหรับการพัฒนาและการดีบักไฟล์บริการมันจะสะดวกกว่าที่จะได้รับรายชื่อที่คาดการณ์ไว้ล่วงหน้าแทนที่จะต้องทำการปิดเครื่องจริงจากนั้นบู๊ตเครื่องใหม่อีกครั้งและตรวจสอบบันทึกทุกครั้งที่ฉันต้องการตรวจสอบ สิ่งที่ส่งผลกระทบต่อการเปลี่ยนแปลงไฟล์หน่วยบริการหรือลักษณะอื่น ๆ ของการกำหนดค่าของ systemd นั้นจะมีต่อคำสั่งปิดเครื่อง ฉันหวังว่าบางอย่างเช่น systemctl list-dependencies --before shutdown.service จะทำงาน แต่มันปล่อยเท่านั้น: shutdown.service

1
/ var / run การสร้างไดเรกทอรีแม้ว่าบริการจะปิดการใช้งาน
โดยปกติแล้วไดเรกทอรีที่จัดเก็บ pid หรือคล้ายกันจะถูกสร้างขึ้นโดยสคริปต์เริ่มต้นของบริการ (ดูคำถามนี้ ) อย่างไรก็ตามฉันเพิ่งสังเกตเห็นว่าไดเรกทอรีเหล่านี้ยังคงถูกสร้างขึ้นใหม่หลังจากรีบูตเมื่อฉันปิดการใช้งานบริการ สิ่งนี้เกิดขึ้นสำหรับบริการทั้งหมดที่ฉันได้ลอง root@sonorus:~# systemctl status openvpn ● openvpn.service - OpenVPN service Loaded: loaded (/lib/systemd/system/openvpn.service; disabled) Active: inactive (dead) root@sonorus:~# systemctl status ejabberd ● ejabberd.service - A distributed, fault-tolerant Jabber/XMPP server Loaded: loaded (/lib/systemd/system/ejabberd.service; disabled) Active: inactive (dead) Docs: https://www.process-one.net/en/ejabberd/docs/ บริการใดที่กำลังสร้างไดเรกทอรีเหล่านี้จริง ๆ

2
นำเข้าตัวแปร PATH ในหน่วย systemd
ฉันมีบริการ systemd ที่มีลักษณะเช่นนี้: [Unit] Description=Kcrypt Backend Webpack Bundler After=network.target [Service] User=kenny Environment=NODE_ENV=PROD WorkingDirectory=/var/www/kcrypt-api/ ExecStart=/var/www/kcrypt-api/scripts/webpack.sh [Install] WantedBy=multi-user.target ไฟล์. sh มีลักษณะดังนี้: #!/usr/bin/env bash export NODE_ENV=DEV rm ./dist/* -rf yarn start webpack --watch yarnปัญหาคือว่ามันไม่สามารถหา kennyผู้ใช้ของฉันถูกเรียกว่า kennyมีเครื่องมือที่เรียกว่าnvmติดตั้งที่จัดการnodejsเวอร์ชัน เครื่องมือนั้นเพิ่มไดเรกทอรีไปยังPATHตัวแปร env โดยการแก้ไข '~ / .bashrc' นั่นหมายถึงว่าคำสั่งจะใช้ได้เฉพาะเมื่อผู้ใช้เข้าสู่ระบบในฐานะyarnkenny ฉันถูกทิ้งให้อยู่กับความรู้สึกว่าถ้าผมตั้งค่าsystemdของunitผู้ใช้ที่ 'เคนนี' systemdจะดูแลส่วนที่เหลือหรือผมไม่ทราบว่าสิ่งที่ผมคิด มีวิธีใดบ้างที่ฉันสามารถนำเข้าkennyตัวแปร PATH ในsystemd unit?
1 systemd 

1
การสตาร์ท mono-service ด้วย systemd
ฉันอ่านมากเกี่ยวกับ systemd เร็ว ๆ นี้ แต่ฉันไม่สามารถหาวิธีการเรียกใช้ของฉันmono-serviceผ่าน systemd ด้านล่างคือการกำหนดค่า systemd daemon ปัจจุบันของฉัน: root@LNXOSESTNL:/opt/omnius-statusdaemon# cat /etc/systemd/system/omnius-statusdaemon.service [Unit] Description="Omnius StatusDaemon" After=network.target [Service] Type=simple User=omnius-statusdaemon Group=omnius-statusdaemon ExecStart=/usr/bin/mono-service -d:/opt/omnius-statusdaemon /opt/omnius-statusdaemon/Dynacommerce.StatusQueueService.exe PIDFile=/tmp/omnius-statusdaemon.pid StandardOutput=journal+console [Install] WantedBy=default.target เมื่อฉันเรียกใช้สคริปต์ exec ข้างต้นโดยตรงทั้งหมดทำงานได้ดีและฉันmono-serviceกำลังทำงานอยู่ อย่างไรก็ตามผ่าน systemd เอาต์พุตอยู่ด้านล่าง: root@LNXOSESTNL:/opt/omnius-statusdaemon# systemctl status omnius-statusdaemon.service ● omnius-statusdaemon.service - "Omnius StatusDaemon" Loaded: loaded (/etc/systemd/system/omnius-statusdaemon.service; enabled; vendor preset: …

2
บริการสคริปต์ Linux init - ล่าช้าจนกว่าซ็อกเก็ต mysql พร้อม
หนึ่งไปเกี่ยวกับการล่าช้าสคริปต์บริการ init ใน Linux จนกว่าซ็อกเก็ต MySQL อยู่? คำสั่ง sleep ในสคริปต์เริ่มต้นทำให้กระบวนการบูตทั้งหมดล่าช้าหรือเป็นสคริปต์เริ่มต้นที่ดำเนินการโดยเธรดอื่นเพื่อป้องกันการบล็อกหรือไม่ ฉันพยายามรับบริการ PolicyD ของฉันเพื่อเริ่มต้นหลังจาก MySQL ขณะนี้มันทำใน /etc/rc5.d เนื่องจากสคริปต์ของ PolicyD เริ่มต้นด้วย S06 ในขณะที่ MySQL เริ่มต้นด้วย S04 ปัญหาคือว่าเมื่อสคริปต์ init ของ policyd ทำงานหาก /var/run/mysqld/mysqld.sock ไม่มีอยู่แสดงว่าไม่ทำงาน ถ้าฉันหน่วงเวลาสคริปต์เป็นเวลา 60 วินาทีมันใช้งานได้ดี (ให้ MySQL มีเวลาเพียงพอในการเริ่มต้นระบบและซ็อกเก็ตของมัน) แต่ฉันไม่ต้องการหยุดกระบวนการบูตทั้งหมดชั่วคราวในระยะเวลานานใช่ไหม ฉันไม่คิดว่า MySQL มีชื่อสิ่งอำนวยความสะดวกเสมือนชื่อ LSB เพื่อชะลอการเริ่มต้นของ policyd หรือไม่ ( https://wiki.debian.org/LSBInitScripts ) วิธีที่ดีที่สุดในการจัดการกับสิ่งนี้คืออะไร? ระบบ …
-1 mysql  boot  systemd  startup  init 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.