Tìm hiểu về Linux: Thư mục /etc/init.d
- Thể LoạI: Linux
Nếu bạn sử dụng Linux, bạn rất có thể đã nghe nói về init.d danh mục. Nhưng chính xác thì thư mục này làm gì? Cuối cùng nó làm một việc nhưng nó làm một việc cho toàn bộ hệ thống của bạn, vì vậy init.d là rất quan trọng. Các init.d thư mục chứa một số tập lệnh start / stop cho các dịch vụ khác nhau trên hệ thống của bạn. Mọi thứ từ acit đến x11-chung được kiểm soát từ thư mục này. Tất nhiên nó không đơn giản như vậy.
Nếu bạn nhìn vào /Vân vân thư mục bạn sẽ tìm thấy các thư mục có dạng rc # .d (Trong đó # là một số phản ánh mức khởi tạo cụ thể - từ 0 đến 6). Trong mỗi thư mục này là một số tập lệnh khác kiểm soát các quá trình. Các tập lệnh này sẽ bắt đầu bằng chữ 'K' hoặc chữ 'S'. Tất cả các tập lệnh 'K' đều chạy trước tập lệnh 'S'. Và tùy thuộc vào vị trí của các tập lệnh sẽ xác định khi nào các tập lệnh bắt đầu. Giữa các thư mục, các dịch vụ hệ thống hoạt động cùng nhau như một cỗ máy được bôi trơn. Nhưng đôi khi bạn cần bắt đầu hoặc dừng một quá trình một cách sạch sẽ và không sử dụng lệnh kill hoặc killall. Đó là nơi /etc/init.d thư mục có ích.
Bây giờ nếu bạn đang sử dụng một bản phân phối như Fedora, bạn có thể tìm thấy thư mục này trong /etc/rc.d/init.d . Bất kể vị trí nào, nó đều phục vụ cùng một mục đích.
Để kiểm soát bất kỳ tập lệnh nào trong init.d theo cách thủ công, bạn phải có quyền truy cập root (hoặc sudo). Mỗi tập lệnh sẽ được chạy dưới dạng một lệnh và cấu trúc của lệnh sẽ giống như sau:
/etc/init.d/command TÙY CHỌN
Ở đâu chỉ huy là lệnh thực sự để chạy và LỰA CHỌN có thể là một trong những điều sau:
- khởi đầu
- dừng lại
- tải lại
- khởi động lại
- buộc tải lại
Thông thường bạn sẽ sử dụng băt đâu dưng, hoặc là khởi động lại. Vì vậy, nếu bạn muốn dừng mạng của mình, bạn có thể ra lệnh:
/etc/init.d/networking stop
Hoặc nếu bạn thực hiện một thay đổi đối với mạng của mình và cần khởi động lại mạng, bạn có thể thực hiện việc này bằng lệnh sau:
/etc/init.d/networking restart
Một số tập lệnh init phổ biến hơn trong thư mục này là:
- mạng lưới
- samba
- apache2
- ftpd
- sshd
- chim bồ câu
- mysql
Tất nhiên có thể có nhiều tập lệnh được sử dụng thường xuyên hơn trong thư mục của bạn - điều đó phụ thuộc vào những gì bạn đã cài đặt. Danh sách trên được lấy từ bản cài đặt Ubuntu Server 8.10 nên một bản cài đặt tiêu chuẩn trên máy tính để bàn sẽ có ít tập lệnh kiểu mạng hơn.
Nhưng còn /etc/rc.local
Có một lựa chọn thứ ba mà tôi đã từng sử dụng khá nhiều. Tùy chọn này là /etc/rc.local kịch bản. Tệp này chạy sau khi tất cả các tập lệnh cấp init khác đã chạy, vì vậy có thể an toàn để đặt các lệnh khác nhau mà bạn muốn đưa ra khi khởi động. Nhiều lần tôi sẽ đặt hướng dẫn gắn cho những thứ như nfs trong tập lệnh này. Đây cũng là một nơi tốt để đặt các tập lệnh 'khắc phục sự cố'. Ví dụ, khi tôi có một chiếc máy mà vì lý do nào đó, samba dường như không muốn khởi động. Thậm chí, hãy kiểm tra để đảm bảo daemon Samba đã được thiết lập để khởi động khi khởi động. Vì vậy, thay vì dành tất cả thời gian của mình cho việc này, tôi chỉ cần đặt dòng:
/etc/init.d/samba start
bên trong /etc/rc.local script và Samba hoạt động như một cái duyên. Cuối cùng tôi sẽ quay lại và gặp sự cố khi quay vấn đề này.
Suy nghĩ cuối cùng
Linux rất linh hoạt. Linux rất linh hoạt nên hầu như có rất nhiều cách để giải quyết một vấn đề duy nhất. Bắt đầu một dịch vụ hệ thống là một trong những vấn đề như vậy. Với sự giúp đỡ của /etc/init.d hệ thống (cũng như /etc/rc.local ) bạn có thể yên tâm rằng dịch vụ của bạn sẽ bắt đầu.