Quên đi rc.local.
Như tôi đã nói về CentOS 7 và về Debian 8 và về Ubuntu 15 :
Bạn đang sử dụng hệ điều hành systemd + Linux. /etc/rc.locallà một cơ chế tương thích ngược kép trong systemd, bởi vì nó là một cơ chế tương thích ngược cho một cơ chế mà chính nó là một cơ chế tương thích trong rcbản sao hệ thống van Smoorenburg 5 .
Sử dụng /etc/rc.localcó thể đi sai lầm khủng khiếp. Mọi người đã rất ngạc nhiên bởi thực tế là systemd không chạy rc.localtheo cùng một cách, ở cùng một vị trí trong bootstrap, như họ đã từng sử dụng. (Hoặc sai lầm mong đợi: Nó không, trên thực tế, chạy cuối cùng . Trong hệ thống cũ, như hướng dẫn OpenBSD vẫn chỉ ra) Những người khác đã bị ngạc nhiên bởi thực tế rằng những gì họ thiết lập trong rc.localmong đợi những cách cũ làm việc, là sau đó hoàn toàn hoàn tác bởi những người như mới udevquy tắc, NetworkManager, systemd-logind, systemd-resolved, hoặc khác nhau "Kit" s.
Như được minh họa bởi " Tại sao` init 0` lại dẫn đến "Đối số dư thừa" khi cài đặt Arch? ", Một số hệ điều hành đã cung cấp systemd mà không có các tính năng tương thích ngược như trình systemd-rc-local-generatortạo . Trong khi Debian vẫn giữ các tính năng tương thích ngược , Arch Linux xây dựng systemd với chúng bị tắt . Vì vậy, trên Arch và các hệ điều hành như nó dự kiến /etc/rc.local sẽ hoàn toàn bị bỏ qua .
Quên đi rc.local. Đó không phải là con đường để đi. Bạn có một hệ điều hành systemd + Linux. Vì vậy, hãy tạo một đơn vị dịch vụ systemd phù hợp và đừng bắt đầu từ một điểm có hai mức độ tương thích ngược. (Trên Ubuntu và Fedora, nó đã bị xóa ba lần, rcbản sao của Hệ thống 5 Smoorenburg rc.localsau đó đã được thay thế hai lần , hơn một thập kỷ trước, đầu tiên là khởi động và sau đó bởi systemd.)
Cũng nhớ quy tắc đầu tiên để di chuyển sang systemd .
Đây thậm chí không phải là một ý tưởng mới dành riêng cho systemd. Trên rccác hệ thống van Smoorenburg và Upstart, điều cần làm là tạo một rckịch bản van Smoorenburg phù hợp hoặc tập tin công việc Upstart thay vì sử dụng rc.local. Ngay cả các ghi chú thủ công của FreeBSD mà ngày nay người ta tạo ra một rckịch bản Mewburn thích hợp thay vì sử dụng /etc/rc.local. Mewburn rcđược NetBSD 1.5 giới thiệu vào năm 2000.
/etc/rc.localbắt đầu từ thời điểm phiên bản thứ bảy Unix và trước đó. Nó đã được thay thế bởi /etc/inittabvà một runlevel dựa trên rcAT & T Unix System 3 (với một chút khác biệt /etc/inittabtrong AT & T Unix System 5) vào năm 1983 . Thậm chí đó là lịch sử.
Tạo định nghĩa dịch vụ gốc phù hợp cho hệ thống quản lý dịch vụ của bạn, cho dù đó là gói dịch vụ cho bộ công cụ nosh service-managervà system-control, /etc/rc.d/tập lệnh cho Mewburn rc, tệp đơn vị dịch vụ cho systemd, tệp công việc cho Upstart, thư mục dịch vụ cho runit / s6 / daemontools -encore, hoặc thậm chí là một /etc/init.d/kịch bản cho van Smoorenburg rc.
Trong systemd, các tệp đơn vị dịch vụ do quản trị viên thêm vào /etc/systemd/system/thường đi vào (hoặc /usr/local/lib/systemd/system/hiếm khi). Với người quản lý dịch vụ nosh, /var/local/sv/là một nơi thông thường cho các gói dịch vụ địa phương. Mewburn rctrên FreeBSD sử dụng /usr/local/etc/rc.d/. Đóng gói file đơn vị sự nghiệp và bó dịch vụ, nếu bạn đang làm cho họ, đi ở những nơi khác nhau, mặc dù.
đọc thêm