So sánh Package vs Daemon là một cách nhìn sâu hơn vào cách Linux tổ chức phần mềm. Đây là hai khái niệm rất khác nhau, nhưng thường liên quan với nhau trong vận hành hệ thống.
| Tiêu chí | Package (Gói phần mềm) | Daemon (Trình nền) |
|---|---|---|
| 💡 Định nghĩa | Gói chứa phần mềm hoặc thư viện, được cài vào hệ thống | Chương trình chạy nền, hoạt động liên tục để phục vụ dịch vụ |
| 🔧 Chức năng | Cung cấp mã, thư viện, file cấu hình... | Cung cấp dịch vụ (web, in ấn, mạng, đồng bộ...) |
| 🧩 Quan hệ | Có thể chứa daemon (nếu là gói dịch vụ) | Được cài đặt thông qua 1 package cụ thể |
| 🔁 Chạy liên tục? | ❌ Không — chỉ là dữ liệu hoặc chương trình | ✅ Có — chạy ngầm liên tục, thường khởi động cùng hệ thống |
| 🚀 Khởi động bởi? | Không tự chạy, phải gọi hoặc dùng | Tự động bởi systemd, init, rc.d,... |
| 📦 Ví dụ package | nginx, cups, mesa-2404, libc6, firefox, ssh |
(nếu chứa daemon: nginx, sshd, cupsd, NetworkManager) |
| 🔥 Ví dụ daemon | Không có daemon riêng, nhưng có thể chứa file cấu hình daemon | nginx, sshd, cupsd, snapd, bluetoothd, systemd-resolved |
| 🔍 Kiểm tra trạng thái | Không có trạng thái khi cài xong | Có thể kiểm tra bằng systemctl status <tên> |
| 📁 File chạy ở đâu? | Cài vào /usr/bin, /usr/lib, /snap/... |
Thường là /usr/sbin/<daemon> hoặc /lib/systemd/system/<name>.service |
nginx là gói cài đặt, khi cài xong sẽ chứa file cấu hình, binary, script service...Một số package có chứa daemon, ví dụ:
| Package | Chứa daemon | Tên daemon khi chạy |
|---|---|---|
nginx |
✅ Có | nginx |
openssh-server |
✅ Có | sshd |
snapd |
✅ Có | snapd |
mesa-2404 |
❌ Không | — (chỉ là thư viện) |
systemctl list-units --type=service
Hoặc tra daemon cụ thể:
systemctl status sshd
| So sánh | Package | Daemon |
|---|---|---|
| Là gói cài đặt | ✅ | ❌ |
| Là tiến trình chạy nền | ❌ | ✅ |
| Có thể chứa daemon không? | ✅ | Không, bản thân daemon không chứa gì |
| Được cài thông qua | APT, Snap, Flatpak... | Cài từ package |
| Ví dụ cụ thể | nginx, mesa-2404, libc6 |
nginx, sshd, cupsd, snapd |
Nếu bạn muốn kiểm tra 1 daemon nào đến từ package nào, bạn có thể dùng:
dpkg -S $(which nginx)
Hoặc:
systemctl status snapd