Daemon là gì?

Daemon là xuất phát từ thời Unix, nhưng thuật ngữ kỳ lạ này vẫn còn được sử dụng cho đến ngày nay. Thuật ngữ này đồng nghĩa với khái niệm "service", một tác vụ chạy liên tục, thường không có sự tương tác của người dùng.

Có một số ví dụ phổ biến về daemon và ngay cả khi bạn không cần biết chính xác cách hoạt động, thì ít nhất bạn cũng có thể xác định được chúng.

Daemon là gì?

Daemon hoặc Disk And Execution MONitor là một chương trình chạy như một tiến trình nền chứ không phải là một tiến trình tương tác. Daemon phổ biến trong các công cụ mạng và những tác vụ quản trị hệ thống. Bạn có thể kiểm soát một số daemon bằng cách gửi tín hiệu cho chúng.

Daemon là một tiến trình chạy trong nền không cần tương tác
Daemon là một tiến trình chạy trong nền không cần tương tác

Daemons hoạt động như thế nào?

Trên các hệ thống Unix, thuật ngữ daemon thường được sử dụng thay thế cho thuật ngữ tiến trình nền. Nói cách khác, đó là một quá trình đã được tách ra khỏi bất kỳ shell nào và tiếp tục chạy không cần tương tác. Một daemon đích thực cũng phải tự gán nó là con của tiến trình init đặc biệt có số ID đặc biệt là 1.

Các tác vụ điển hình khác liên quan đến việc cô lập daemon bao gồm:

  • Sandbox bằng cách loại bỏ các biến không cần thiết khỏi môi trường của nó.
  • Đặt thư mục root (/) làm thư mục hoạt động hiện tại của tiến trình.
  • Chuyển hướng mô tả file cho đầu vào, đầu ra và lỗi sang file nhật ký hoặc /dev/null.
  • Các hệ thống khác, chẳng hạn như Windows và macOS, cũng sử dụng daemon. Trong trường hợp của Windows, các service là tương đương gần nhất với daemon.

Một số daemon thường gặp là gì?

Cron (crond)

Cron (crond) là một daemon thực thi các chương trình khác theo lịch trình. Hầu hết các hệ thống Unix đều cấu hình nó để chạy tự động khi khởi động. Nó sẽ “thức dậy” một lần mỗi phút, kiểm tra các file cấu hình và thực thi bất kỳ lệnh nào được thiết lập để chạy trong phút đó. Cron đủ thông minh để phản ứng với các thay đổi đối với file crontab. Bạn không cần phải tự khởi động lại nó.

httpd

Các web server, chẳng hạn như httpd của Apache, thường chạy dưới dạng daemon - chữ d là viết tắt của daemon. Daemon Apache xử lý các yêu cầu đến bằng cách tạo một nhóm những tiến trình con để chia sẻ tải. Bạn có thể sử dụng một chương trình trợ giúp, chẳng hạn như apachectl, để kiểm soát dễ dàng hơn chính daemon httpd.

sshd

Cuối cùng, sshd là một ví dụ phổ biến khác của daemon, lần này là một tiến trình nền xử lý các kết nối SSH. Một lần nữa, nó thường bắt đầu từ khi khởi động và vẫn chạy vô thời hạn, dựa vào các tín hiệu cho một số hoạt động nhất định. Ví dụ, tín hiệu SIGHUP khiến sshd tự thực thi lại và load lại file cấu hình khi thực hiện việc này.

Thứ Năm, 16/09/2021 09:46
53 👨 8.829
0 Bình luận
Sắp xếp theo
    ❖ Kiến thức cơ bản