ใน Fedora เรามีสคริปต์ 'systemctl' และ 'service' systemctl
ดูเหมือนว่าการให้บริการภายในเรียก ดังนั้นวิธีการที่ถูกต้อง / เหมาะสมใน Fedora คือการเริ่มหรือหยุดบริการ - ผ่านsystemctl
หรือservice
สิ่งอำนวยความสะดวก อาจจะมีความแตกต่างที่ต้องจำไว้?
ใน Fedora เรามีสคริปต์ 'systemctl' และ 'service' systemctl
ดูเหมือนว่าการให้บริการภายในเรียก ดังนั้นวิธีการที่ถูกต้อง / เหมาะสมใน Fedora คือการเริ่มหรือหยุดบริการ - ผ่านsystemctl
หรือservice
สิ่งอำนวยความสะดวก อาจจะมีความแตกต่างที่ต้องจำไว้?
คำตอบ:
วิธีที่จะหยุด / เริ่มให้บริการใน Fedora (รุ่นที่ใหม่กว่า) systemctl
คือการใช้
อย่างไรก็ตามอาจมีบริการบางอย่าง/etc/init.d/
ที่คุณสามารถควบคุมได้ด้วยservice
คำสั่ง คุณยังคงสามารถควบคุมพวกเขาด้วยการsystemctl
เป็นsystemd
แผนที่โดยอัตโนมัติไปยังไฟล์หน่วยสำหรับคุณ
ตัวอย่างเช่นใน CentOS 7 ของฉัน (Fedora 19 หรือราว ๆ นั้น) มี/etc/rc.d/init.d/network
สคริปต์ที่ฉันสามารถควบคุมได้ด้วยservice
คำสั่ง ถ้าฉันใช้systemctl
แทนมันยังคงใช้งานได้:
# sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago
ในขณะที่คุณสามารถดูจะได้รับการแมปไป/etc/rc.d/init.d/network
โดยsystemd
และsystemctl
การควบคุมคำสั่งมัน
ฉันน่าจะเป็น 'ปีที่แล้ว' และใช้service
แทน:
# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0
ทั้งสองทำงาน แต่โปรดทราบว่าพวกเขาให้ผลลัพธ์ที่แตกต่างกันในstatus
คำสั่งของพวกเขา
โดยทั่วไปแล้วกรณีที่service
สคริปต์ถูกเปลี่ยนเส้นทางไปยังสคริปต์ systemctl (Systemd) ดังนั้นโดยทั่วไปแล้วคุณต้องการใช้สิ่งที่คุณต้องการ
จากระบบ Fedora 20 ของฉัน
$ service sshd status
Redirecting to /bin/systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
Main PID: 1095 (sshd)
CGroup: /system.slice/sshd.service
└─1095 /usr/sbin/sshd -D
Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.
โดยทั่วไปฉันใช้ทั้งสองวิธีเนื่องจากนิสัยเก่าตายยาก แต่ถ้าคุณกำลังพยายามปรับให้เข้ากับโลก Systemd ฉันจะบังคับตัวเองให้ทำสิ่งต่าง ๆ โดยใช้systemctl
ถ้าเป็นไปได้
นอกจากนี้ Systemd ยังนำทุกสิ่งที่คุณเคยทำด้วยchkconfig
และservice
ภายใต้คำสั่งเดียวsystemctl
ดังนั้นฉันจึงพบว่าง่ายต่อการรับมือในระยะยาว
สูตรนี้ในเว็บไซต์ของโครงการ Fedora มีประโยชน์ในการเปลี่ยน
อนึ่งคำตอบสำหรับคำถามเดิมของคุณจะถูกตอบในเชิงอรรถในหน้านั้น:
โปรดทราบว่าบรรทัด / sbin / บริการและ / sbin / chkconfig ทั้งหมดที่กล่าวไว้ข้างต้นยังคงทำงานกับ systemd และจะถูกแปลเป็นภาษาท้องถิ่นเท่าที่จำเป็น ข้อยกเว้นเพียงอย่างเดียวคือ chkconfig - รายการ
service foo start
ใน debian นั้นทำงานได้ไม่ว่าระบบ init ของคุณจะเป็น systemd หรือ sysvinit หรือพุ่งพรวด;systemctl
อาจจะไม่ทำงานหาก systemd ไม่ใช่ PID1