Bài đăng nổi bật

Hướng dẫn thay đổi thư mục root mặc định của Docker trên Linux

Hoàn cảnh: người viết gặp một trường hợp như này Được team hạ tầng cấp cho một máy chủ gồm 2 phân vùng lưu trữ, 1 phân vùng 20GB được gắn và...

06 tháng 3, 2012

Cơ chế quản lý startup trên Linux.

Cái này nếu ai dùng windows nhiều thì sẽ biết rất rõ. Nhưng với linux thì liệu có cơ chế này không, nếu có thì phải sử dụng như thế nào. Bài viết này sẽ giới thiệu cho mọi người sơ lược về cơ chế startup và cách sử dụng nó trên Linux như thế nào.
Trên Linux, Debian và các dòng dựa trên Unix về cơ bản sẽ có 6 cấp hoạt động (gọi là runlevel), có thể số lượng thay đổi tùy theo các bản phân phối. Chúng bao gồm:
·         Runlevel 0: rc0.d – Tương ứng với trạng thái Halts của máy
·         Runlevel 1: rc1.d – Tương ứng với trạng thái máy khởi động cho người quản trị.
·         Runlevel 2: rc2.d – Tương ứng với trạng thái máy khởi động không có các dịch vụ mạng (tương tự safemode trên windows)
·         Runlevel 3: rc3.d – Tương ứng với trạng thái máy khởi động bình thường
·         Runlevel 4: rc4.d – Đây là trạng thái chưa sử dụng.
·         Runlevel 5: rc5.d – Tương ứng với trạng thái máy khởi động với trình điều khiển đồ họa như gdm hay x-system.
·         Runlevel 6: rc6.d – Tương ứng với trạng thái reboot. (Khi máy reboot thì sẽ gọi các script trong thư mục này trước)
Ngoài ra còn có 2 runlevel là:
·         Rc.local: được gọi trước khi gọi các rcx.d (x là runlevel tương ứng)
·         rcS.d: được gọi sau khi máy chạy hết các script trong rcx.d (x là runlevel tương ứng).
Nội dung trong mỗi rcx.d bao gồm:
·         Các file có tên theo cấu trúc sau: SscriptNN (S: là từ khóa, NN: là số thứ tự, script: là tên script) là file khởi động dịch vụ và thứ tự khởi động là NN.
·         Các file có tên theo cấu trúc sau: KscriptNN (K: là từ khóa, NN: là số thứ tự, script: là tên script) là file tắt dịch vụ và thứ tự tắt là NN.
·         Các file có NN càng nhỏ thì thứ tự khởi động càng sớm, tức là 1 sẽ phải được gọi trước 2.
Để kiểm tra trạng thái máy chủ đang chạy ở runlevel nào có thể sử dụng lệnh: runlevel
Ví dụ ta thu được đầu ra là 2, tức là máy khi khởi động sẽ gọi các script chứa trong thư mục rc2.d
Các script trong rcx.d đều là các liên kết tới các script nằm trong thư mục /etc/init.d (có thể xem bằng lệnh ls –l /etc/rc*)
Vậy ta có thể sử dụng cơ chế startup trên linux như thế nào:
·         Để sử dụng ta phải sử dụng lệnh “update-rc.d
·         Update-rc.d tìm các script trong thư mục /etc/init.d/
·         Cấu trúc lệnh update-rc.d như sau:
o   Để loại bỏ một script ta dùng lệnh:
update-rc.d –f script_name remove.
o   Để tạo một script khởi động ta dùng lệnh
update-rc.d script_name start 48 1 3 6 . stop 36 0 2 5.
Trong đó:
script_name: tên script đặt trong thư mục /etc/init.d/ và có quyền excute (quyền “x”)
48: thứ tự Start
1, 3, 6: runlevel
dấu “.” Là bắt buộc, có 2 dấu “.” Trong đoạn script
36: thứ tự stop
0, 2, 5: runlevel

2 nhận xét: