Bài viết Sơ lược về Runlevel trên hê thống Linux

Thảo luận trong 'Tin học căn bản' bắt đầu bởi Mr. Thuyen, 30 Tháng tám 2012.

  1. Offline

    Mr. Thuyen

    • Thành Viên Mới

    Số bài viết:
    4
    Đã được thích:
    2
    Điểm thành tích:
    0
    Runlevel là một khái niệm chỉ định cách thức khác nhau để sử dụng hệ thống nhằm điều khiển những dịch vụ (services) chạy trên hệ thống. Ví dụ, hệ thống như một máy chủ web (Web Server) được vận hành trong một Runlevel nào đó mà được thiết kế cho phép chia sẻ dữ liệu, mọi người dùng có thể truy cập đến Web Server, nhưng trong trường hợp hệ thống cần bảo trì khẩn cấp vì một lý do nào đó, người quản trị sẽ chuyển sang một Runlevel khác. Do vậy, hệ thống có thể vô hiệu hóa một số dịch vụ cơ bản như web server và người dùng sẽ không truy cập được đến web server.
    Runlevel được xác định bởi một số nguyên từ 0 đến 6. Runlevel 0 và 6 thường dùng để tắt (shutdown) và khởi động (Reboot) lại hệ thống. Khi HĐH Linux khởi động (boot), tiến trình (process) đầu tiên mà nó bắt đầu là init, sau đó mới đến các tiến trình khác. Tiến trình init chịu trách nhiệm đưa hệ thống vào Runlevel mặc định ( default runlevel), thông thường là 2, 3 hay 5 phụ thược vào bản phân phối HĐH sử dụng. Dưới đây là bảng tóm tắt danh sách Runlevel
    [IMG]
    Chế độ Single-User
    Runlevel 1(singleuser), là môi trường thi hành cần thiết được dự định cho bảo trì (maintenance) hệ thống. Trong chế độ Single-user, đăng nhập từ xa (login remote) và mạng (networking) bị vô hiệu hóa, và một số deamon[1] không được khởi động (start). Chế độ Single-User được dùng cho những tác vụ cấu hình hệ thống mà nó phải được thi hành cùng với không có user nào hoạt động. Thông thường bạn nên áp dụng chế dộ single-user này để khắc phục những vấn đề liên quan đến hệ thống tập tin bị lỗi.
    Để chuyển sang chế độ single-user từ một runlevel khác, bạn có thế sử dụng lệnh init
    #init 1
    Tổng quan về cây thư mục /etc và tiến trình init
    Hành động mà tiến trình init cho mỗi runlevel là bắt nguồn từ Unix System V và được chỉ định trong một dãy các thư mục (directory) và tập tin script trong thư mục /etc.
    Khi hệ thống Linux khởi động, nó sẽ chạy một số script trong /etc để bắt đầu cấu hình hệ thống và những script tùy vào runlevel. Dưới đây là một số môt tả về những tập tin:
    - /etc/rc.sysinit hay /etc/init.d/rcS : Red Hat based chạy script rc.sysinit và Debian dùng script rcS. Cả hai đều có một nhiệm vụ chung là chạy một số các script nhỏ được đặt vào hai thư mục khác nhau. Trong mỗi trường hợp, script này là khởi động bởi tiến trình init at lần boot. Nó sẽ xử lý một số thứ cần thiết để chuẩn bị cho hệ thống sử dụng như: mount[2] hệ thống tập tin. Những script này được thiết kế để chạy trước khi bất cứ daemon là bắt đầu.
    - /etc/rc.local : Không sử dụng cho hệ thống Debian-based. Red Hat Based, đầy là tập tin script mà nó được gọi sau khi tất cả các script init khác (sau tất cả deamon được bắt đầu).
    - /etc/rc : Đây là script được sử dụng cho việc chuyển đổi giữa các runlevel. Nó không được cũng cấp trên Debian.
    Công việc bắt đầu và dừng những dịch vụ hệ thống (deamon) là được xử lý bởi những tập tin và những symbolic link [3]trong thư mục /etc/init.d và và một dãy các script trong thư mục /etc/rc0.d đến /etc/rc6.d tùy thuộc vào runlevel được chỉ định. Dưới đây sẽ mô tả một số script trong thư mục:
    - /etc/init.d : Đây là thư mục chứa những script riêng lẽ cho mỗi dịch vụ được khởi động/tắt. Ví dụ, script /etc/init.d/httpd là shell script mà nó thi hành kiểm tra tính đúng đắng trước khi khởi động và dừng dịch vụ Apache web server. Một số tham số kèm theo script mà ví dụ ở trên là bao gồm ít nhất một từ start và stop. Thêm một số tham số chấp nhập bởi script như: restart, status và reload.
    o #/etc/init.d/httpd stop : lệnh này dừng dịch vụ httpd
    o #/etc/init.d/httpd start : lệnh này khởi động là dịch vụ
    o #/etc/init.d/httpd reload : lệnh này sẽ đọc lại tập tin cấu hình dịch vụ
    - Thực mục từ /etc/rc0.d đến /etc/rc6.d : Những script trong /etc/init.d là không trực tiếp thực thi bởi tiến trình init. Thay vào đó, mỗi thư mục từ /etc/rc0.d đến /etc/rc6.d chứa được những symbolic links đến mỗi script trong thư mục /etc/init.d. Khi bạn nhập một runlevel N, nó sẽ xem xét tất cả liên kết mà kèm theo thư mục rcN.d. Ví dụ bạn nhập lệnh #init 3 nó sẽ chuyển sang runlevel 3 và thực thi tuần tự những script trong thư mục /etc/rc3.d (bạn dùng lệnh ls –l /etc/rc3.d để xem chi tiết hơn)
    Thiết lập chế độ Runlevel mặc định
    Để xác định chế độ runlevel mặc định ở lần boot, ta đọc tập tin cấu hình /etc/inittab và xem dòng chứa nội dung initdefault , ta sẽ thấy định dạng như dưới này:
    Id:N:initdefault:
    N là một con số như 3. Đây là số sử dụng như là chế độ runlevel mặc định.
    Xác định Runlevel của hệ thống
    Để xác định runlevel đang chạy trên hệ thống ta dùng lệnh dưới:
    #runlevel
    3 5
    Nó sẽ hiển thị cho ta biết runlevel lúc trước là 3 và hiện tại runlevel đang chạy là 5
    #runlevel
    N 5
    Ở trên hiện thị cho ta biết runlevel mặc định là 5, vì ký tứ N cho ta biết, ta chưa chuyển đổi sang runlevel nào khác từ lúc hệ thống boot đến bây giờ.
    Lệnh init
    Cú pháp: init n
    Mô tả : Lệnh này đưa hệ thống vào runlevel chỉ định n, n là số nguyên từ 0 đến 6. Init còn hỗ trợ tham số S và s nó cũng như runlevel 1

    [1] Deamon : Chương trình máy tính chạy như tiến trình background hơn là tương tác với người sử dụng
    [2] Mount : là một thao tác cho phép một số thư mục trong thư mục / (root) tham chiếu đến một số phân vùng logic của ổ cứng.
    [3] Symbolic link : liên kết tập tin này đến một tập tin khác nhằm giảm bớt dung lượng ỗ đĩa (thay vì sao chép toàn bộ tập tin khác thì chỉ cần tạo một liên kết đến tập tin đó).
    sunset_glow thích bài này.

Chia sẻ trang này

Advertising: Linux system admin | nukeviet | nukeviet 4 | Upload ảnh miễn phí