Chúng ta thường thấy thuật ngữ ‘daemon‘ xuất hiện khá nhiều khi cài đặt chương trình hay dịch vụ nào đó. 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. Vậy daemon là gì? Nó hoạt động như thế nào? Mời bạn tham khảo chia sẻ dưới đây của Biết Tuốt.
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. Nó 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](https://biettuot.info/wp-content/uploads/2021/09/daemon.jpg)
Một daemon khi chạy nền (background) liên tục sẽ phục vụ cho việc trả lời các yêu cầu cho các dịch vụ. Thuật ngữ bắt nguồn từ Unix, nhưng hầu hết các hệ điều hành đều sử dụng tiến trình background dưới dạng này hay dạng khác. Trong Unix, tên của daemon thường kết thúc bằng “d“. Một số ví dụ bao gồm inetd, httpd, nfsd, sshd, có tên và lpd.
Cách thức hoạt động của Daemons 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.
![daemon1](https://biettuot.info/wp-content/uploads/2021/09/daemon1.png)
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ố đặc điểm về daemon
- Daemon không thể bị gián đoạn và chỉ hoạt động khi chúng nhận được đầu vào. Có nhiều dịch vụ hệ thống được thực hiện bởi daemon, cụ thể là dịch vụ mạng, in ấn, v.v.
- Tách ra khỏi quá trình cha mẹ.
- Tách khỏi thiết bị đầu cuối kiểm soát.
- chdir đến / để tách liên kết khỏi thư mục.
- Umask 0 để bỏ qua bất cứ quyền mà tiến trình có thể đã thừa hưởng.
- Đóng filedescriptors của bạn và mở lại những cái cụ thể theo ý thích của bạn.
- Một lý do chính đáng khác để biến chương trình thành daemon là nó sẽ tiếp tục chạy ngay cả khi bạn đăng xuất. Bạn có thể tách chức năng khỏi việc bạn đã đăng nhập hay chưa. Khi bạn chạy nó, nó sẽ tiếp tục chạy cho đến khi nó bị giết một cách rõ ràng hoặc một lỗi khiến nó bị sập.
- Bạn có thể xem các tập tin tồn tại hoặc không tồn tại hoặc các ổ đĩa được gắn hoặc không được gắn hoặc bất kỳ số thứ nào khác, sử dụng inotify hoặc các phương tiện khác để kiểm tra những gì đang diễn ra.
- Giám sát một hệ thống là một lý do tốt để sử dụng một daemon. Cron có thể chạy các quy trình mỗi phút – nhưng nếu bạn cần độ chi tiết chặt chẽ hơn thế, thì cron không thể giúp được. Với một daemon, bạn có thể thiết lập bất cứ lúc nào bạn muốn trong “vòng lặp chính” của mình.
Xem thêm:
Trình quản lý mật khẩu là gì? Có nên dùng trình quản lý mật khẩu trả phí không?
Điểm danh những trình duyệt Web phổ biến nhất thế giới năm 2021