/etc/rc.d vs /etc/init.d


15

Thư mục của ubfox có /etc/init.dchính xác tương đương (về mặt chức năng) với những gì tôi cho là chuẩn hơn /etc/rc.d/(ít nhất là trên vòm) không? Có bất kỳ lý do cụ thể nào được sử dụng init.d thay vì RC.d cho các tập lệnh khởi động không?


1
Trên thực tế arch linux là bản phân phối duy nhất sử dụng /etc/rc.dmà tôi đã thấy ... Tôi nghi ngờ nó có thể được sử dụng trong bsd.
xenoterracide

1
nó được sử dụng trong freebsd
wlraider70

Câu trả lời:


16

Ubuntu sử dụng /etc/init.dđể lưu trữ các tập lệnh SysVinit vì Ubuntu dựa trên Debian và đó là những gì Debian sử dụng. Mũ đỏ sử dụng /etc/rc.d/init.d. Tôi quên những gì Slackware sử dụng. Không có một vị trí tiêu chuẩn.

Ubuntu đang trong quá trình chuyển đổi từ SysVinit sang Upstart , sử dụng các tệp cấu hình trong /etc/init.


2
Xin lỗi, nhưng /etc/init.d là tiêu chuẩn, là một phần của tiêu chuẩn SVR4 mà Linux bắt đầu các tập lệnh được sao chép.
Rich Homolka

Trang web của Upstart tuyên bố Ubuntu đã sử dụng nó kể từ phiên bản 6.10
badp

@badp: Mặc dù 6.10, vẫn sử dụng các tập lệnh init kiểu SysV trong /etc/init.d. Quá trình chuyển đổi để /etc/init/*.confbắt đầu sau (8.04 vẫn là tất cả kiểu SysV, 10.04 đã chuyển đổi).
Gilles 'SO- ngừng trở nên xấu xa'

2
Ubuntu đã chuyển từ Upstart sang systemd kể từ 15.04.
PetroCliff

7

/etc/init.d là vị trí lịch sử cũ cho SVR4. Tôi quên tại sao redhat thêm cấp /etc/rc.d/. Tôi nghĩ cách ly mọi thứ với RC.d, nhưng sau đó cần thêm một loạt các liên kết tượng trưng để tương thích ngược. Vì vậy, có /etc/init.d trong redhat, chỉ cần nó liên kết ở nơi khác.

Vì vậy, vị trí tiêu chuẩn là /etc/init.d, mặc dù đó có thể là một liên kết tượng trưng không phải là một thư mục thực.

Có một số bản phân phối Linux thực sự cũ đã sao chép BSD bằng /etc/rc.local nhưng gần như không còn ai sử dụng nó nữa.



5

Trong lịch sử, /etc/rc.dcây thư mục biểu thị một hệ thống init theo truyền thống khởi tạo hệ thống 4.4 BSD, thường được gọi là rchệ thống init. Tất cả hệ thống BSD hiện đại (Miễn phí / Mở / Net) và Slackware Linux đều tuân theo truyền thống này.

Cây /etc/init.dthư mục biểu thị hệ thống init System V (SysV) theo truyền thống khởi tạo hệ thống AT & T UNIX, SunOS, Solaris. Điều này thường được gọi là hệ thống SysV init. Debian thích hợp vẫn theo truyền thống này trong loạt Wheezy, nhưng dự định sử dụng SystemD trong sê-ri Jessie. Trong lịch sử, RedHat và các công cụ phái sinh đã sử dụng SysV init, nhưng không còn nữa.

Ngoài ra, theo thời gian, các tính năng của cả hai chương trình init đã được phân phối.


Và sau đó là AIX với "/etc/rc.d/init.d/". Một chút cột A và một chút cột B.
DarkHeart

0

Trên thực tế, ít nhất là trong CentOS 6.8 Santiago, /etc/init.dchỉ là một liên kết mềm /etc/rc.d.


Đó chính xác là những gì tôi muốn nói, haha. Xin lỗi về lỗi chính tả, tôi đã chỉnh sửa trả lời của tôi bây giờ.
chromechris

Tại sao mọi người downvote mà không đưa ra một lời giải thích? Tuyên bố trừ khi cố ý không liên quan vẫn có thể có giá trị hoặc ý nghĩa đối với một số người đọc mới làm quen. Giải thích khi bạn downvote. Tôi +1 để hoàn tác hiệu ứng của -1
Asad Iqbal

0

PuppyLinux có cả /etc/rc.d/etc/init.d , không phải là một liên kết tượng trưng. Thế nào là một liên kết tượng trưng là /etc/rc.d/init.d , mà liên kết lên một mức độ để /etc/init.d (Tôi đang nhìn vào một Puppy-- Slackware-based cũng có dựa trên Ubuntu và hương vị khác .) Có mỗi README.txt, giải thích cách tiếp cận của họ.


0

Ok, /etc/init.dlà một nơi mà bạn có thể nhanh chóng triển khai một tập lệnh init. Bước thứ hai để kích hoạt tập lệnh này là chạy một chkconfiglệnh trên nó. Giả sử bạn chạy chkconfig --add <yourscript>, các liên kết tượng trưng sẽ được tạo giữa /etc/init.d/<yourscript>/etc/rc.d/rcX.d/S50<script>ví dụ. X trong RCX.d đại diện cho số runlevel của tập lệnh và S50 đại diện cho loại tập lệnh (có hai loại này, S & K, S báo cho hệ thống khởi động tập lệnh khi khởi động và K báo cho hệ thống biết thoát khỏi tập lệnh một cách duyên dáng khi bạn tắt máy. Số sau S / K đại diện cho thứ tự xảy ra, trong trường hợp bạn có một số tập lệnh phụ thuộc vào người khác đang hoạt động trước). Theo mặc định, nếu không có runlevel được chỉ định bên trong tập lệnh hoặc khi bạn ban hành lệnh runlevel, CentOS6 tạo tập lệnh S50 cho runlevels 2,3,4,5 và K50 cho runlevels 0,1,6.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.