ทำไมสคริปต์ init.d ในที่อื่น ๆ


16

ฉันยังคงอ่าน / ฟัง/etcสำหรับไฟล์การกำหนดค่าระบบ คนที่สามารถอธิบาย / ให้ฉันสัญชาตญาณบางอย่างสำหรับเหตุผลที่สคริปต์เหล่านี้ที่เริ่มต้น / หยุด / เริ่มการทำงานของโปรแกรมต่างๆมักจะอยู่ใน/etcแทน/varหรือ/usrหรือบางสิ่งบางอย่างที่คล้ายกัน?


แม้ว่าคำถามอาจจะเป็นความคิดเห็นที่มุ่งเน้นไปเล็กน้อย แต่ฉันคิดว่าคำถามนั้นสามารถตอบได้ด้วยข้อเท็จจริงที่แท้จริง
Julie Pelletier

คำถามเกี่ยวกับเหตุผลทางประวัติศาสตร์ "อิงตามความคิดเห็น" หรือไม่? มองย้อนกลับไปมีเหตุผลบางอย่างที่เป็นจริงว่าทำไมบางสิ่งบางอย่างเกิดขึ้น แม้ว่ามันจะเป็นเพียงแค่ "เพราะคุณแกรนด์แฮ็คเกอร์ทำอย่างนั้น" แต่ก็ไม่ได้ขึ้นอยู่กับความคิดเห็นของใครก็ตามที่ตอบคำถามในตอนนี้
ilkkachu

ยกเว้นคำถามที่กล่าวว่า "ทำไมจึงควรเป็น" ซึ่งเป็นสิ่งกระตุ้นให้เกิดการอภิปรายที่มีสีสัน แก้ไขเล็กน้อยเพื่อให้น้อยลง @ อดัมอย่าเสียใจถ้าคุณคิดว่านี่เป็นความตั้งใจของคุณ
ilkkachu

1
เพราะเมื่อใดและอย่างไรบริการเริ่มต้นคือการกำหนดค่าระบบ
OrangeDog

1
สำหรับลูกเกดตีโพยตีพาย
TMN

คำตอบ:


22

ก่อนหน้านี้ (ทั้งในอดีตและในกระบวนการบูท ... ) /etcเป็นส่วนหนึ่งของ/(ระบบไฟล์ที่เมาท์ครั้งแรก) ในขณะที่/usrไม่ใช่ (จนกระทั่งดิสก์มีขนาดใหญ่) /varเก็บข้อมูลชั่วคราวในขณะที่สคริปต์เหล่านี้ไม่ได้ชั่วคราว

มันไม่ง่ายอย่างนั้น แต่มันเริ่มต้นด้วยวิธีนี้และมีเหตุผลเล็กน้อยที่จะนำการจัดรูปแบบไดเรกทอรีทั้งหมดกลับมาใช้ใหม่


1
อย่างที่คุณพูดมันไม่ง่ายอย่างนั้น ระบบยูนิกซ์เชิงพาณิชย์ต่างๆมี executables ไบนารีที่เกิดขึ้นจริงใน/etcบางจุดหรืออื่น อย่างน้อยinit.dก็สคริปต์ส่วนใหญ่ในระบบที่ทันสมัย แต่ก็ยังเป็นไปไม่ได้ที่จะ/etcติดตั้งแบบอ่านอย่างเดียว
Satō Katsura

2
@SatoKatsura: ด้วยการกำเนิดของภาษาที่รวบรวมที่รู้สึกเหมือนภาษาสคริปต์ฉันเริ่มสังเกตเห็นบางสคริปต์ / etc (แม้กระทั่งสคริปต์ init) ถูกแทนที่ด้วยโปรแกรมไป - ปฏิบัติการไบนารี
slebetman

นอกจากนี้ยังเป็นที่น่าสนใจที่จะทราบว่าการเปลี่ยน sysVinit ที่ทันสมัยจะใช้ไฟล์การกำหนดค่าอย่างง่ายแทนสคริปต์แบบเต็มดังนั้นจึง/etcอาจล้างข้อมูลที่ไม่ได้ตั้งค่าได้
GnP

/tmpเก็บข้อมูลชั่วคราว /varเก็บข้อมูลตัวแปร
Neil McGuigan

14

สคริปต์เริ่มต้นเป็นส่วนสำคัญของการกำหนดค่าระบบ

แม้ว่าขั้นตอนการบู๊ตขึ้นก็จะน้อยลงการปรับแต่งกว่ามันเป็น 15-30 /etcปีที่ผ่านมาและส่วนใหญ่ของการกำหนดค่าเริ่มต้นที่ได้รับโดยอัตโนมัติทุกทางเลือกในการบริหารที่กำหนดลำดับการเริ่มต้นยังคงอยู่ในปัจจุบัน

สิ่งนี้แสดงให้เห็นถึงวิธีการรวมศูนย์ในการบำรุงรักษาและสำรองข้อมูลการกำหนดค่าของระบบ ในระบบส่วนใหญ่การสำรองข้อมูล/etcก็เพียงพอที่จะอนุญาตให้ติดตั้งระบบใหม่ทั้งหมดได้อย่างง่ายดาย คุณเพียงแค่ทำการติดตั้งใหม่อย่างเต็มรูปแบบด้วยโปรแกรมที่จำเป็นและกู้คืน/etcข้อมูลสำรองของคุณ


3

M. Dickey และ M. Pelletier ต่างก็ซื้อมาในสถานที่ของคำถาม แต่สถานที่ผิด

หากคุณอ่านว่า " /etcเป็นไฟล์การกำหนดค่าระบบ" จากนั้นคุณได้อ่านสิ่งที่ไม่ได้วาดภาพแบบเต็มสำหรับคุณ ดูที่ชื่อ มันคือ "et cetera" ผู้คนได้ใส่ทุกอย่างไว้ในอ่างครัวในคราวเดียว

  • /etc/rc เคยเป็น (และในบางระบบยังคงเป็น) โปรแกรมรันเพื่อเริ่มทุกอย่าง
  • ไฟล์อิมเมจโปรแกรมสำหรับกระบวนการผู้ใช้ครั้งแรกอยู่/etc/initที่จุดหนึ่ง (ใน XENIX ตัวอย่างเช่นก่อนที่จะเริ่มต้นเป็นแนวคิด
  • /etc/profile, /etc/zprofileและส่วนที่เหลือทั้งหมดเป็นสคริปต์อย่างแน่นอน
  • OpenBSD's /etc/netstartเป็นโปรแกรม เป็นของ /etc/ipfw.rulesFreeBSD
  • ดังนั้น FreeBSD ก็เช่นกัน/etc/rc.suspendและ/etc/rc.resume; และแน่นอน/etc/rc.sendmail, และ/etc/rc.bsdextended/etc/rc.firewall

ในทำนองเดียวกันถ้าคุณได้อ่านว่า "สคริปต์ที่เริ่ม / หยุด / เริ่มการทำงานของโปรแกรมต่างๆมักจะอยู่ใน/etcแทน/varหรือ/usrสิ่งที่คล้ายกันหรือ" แล้วคุณได้อ่านอย่างอื่นที่ไม่ได้ทาสีภาพเต็มสำหรับคุณ

  • การประชุม FreeBSD / PC-BSD คือการมี/usr/local/etc/rc.d/ไดเรกทอรีสำหรับrcสคริปต์ ระบบที่ไม่ใช่ระบบปฏิบัติการ สคริปต์สำหรับทุกประเภทของสิ่งมีชีวิตอยู่มากกว่าภายใต้rc/etc
  • คุณจะพบคน daemontools ครอบครัววางสิ่งจัดการบริการบางอย่างใน/var/sv, /var/serviceและสถานที่ที่คล้ายกัน (ตัวอย่างเช่นชุดเครื่องมือของฉันให้บริการเกือบพันบันเดิลเซอร์วิส/var/svเท่านั้นบันเดิลเซอร์วิสที่เข้าใช้/etc/service-bundlesคือระหว่าง 60 และ 70 ที่จำเป็นก่อน/usrติดตั้งรวมถึงบริการที่เมานต์และตรวจสอบ/usrว่าจำเป็น)
  • systemd ประชุมระบบปฏิบัติการมีที่อยู่อาศัยบางสิ่งใน/etc/systemdสิ่งบางอย่างใน/run/systemdสิ่งบางอย่างใน/usr/lib/systemdและ ( แม้ว่าจะไม่มีเอกสารสำหรับเหตุผลที่ไม่เหมาะสม ) /usr/local/lib/systemdสิ่งบางอย่างใน อีกครั้งส่วนใหญ่ของ "สิ่งสำหรับการเริ่มต้น / หยุดบริการ" เป็นที่จะพบภายใต้มากกว่าภายใต้/usr/etc

2

คุณจะทำดีเพื่อตรวจสอบระบบแฟ้มลำดับชั้นมาตรฐาน มันจะอธิบาย (โดยละเอียด) ว่าทำไมถึงเป็นเช่นนี้ แต่ยังมีข้อมูลดังกล่าวในเส้นทางอื่น ๆ อีกมากมายที่คุณอาจสงสัย

มาตรฐานระบบไฟล์ได้รับการออกแบบให้ใช้งานโดยนักพัฒนาระบบปฏิบัติการ Unix ผู้พัฒนาแพ็คเกจและผู้พัฒนาระบบ อย่างไรก็ตามมันมีจุดประสงค์หลักเพื่อเป็นข้อมูลอ้างอิงและไม่ใช่การสอนเกี่ยวกับวิธีการจัดการระบบไฟล์ Unix หรือลำดับชั้นของไดเรกทอรี


มันไม่ได้อธิบายภูมิหลังทางประวัติศาสตร์
Thorbjørn Ravn Andersen

2

Digital UNIX ค่อนข้างจะวางสคริปต์ภายใต้/sbin/init.dไดเรกทอรีอย่างสมเหตุสมผล และยัง HP-UX, ตามหินโรเซตตา

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