Cách dùng Trình tạo systemd Service
- Chọn một preset — Node.js, Python với Gunicorn, file binary Go hoặc script chạy theo lịch — để tự điền các giá trị mặc định hợp lý.
- Đặt command, thư mục làm việc và user sẽ chạy dịch vụ (tạo bằng
useradd --system; đừng bao giờ chạy ứng dụng bằng root). - Thêm biến môi trường hoặc
EnvironmentFile, chọn chính sách restart và giữ sandboxing được bật. - Sao chép file unit vào
/etc/systemd/system/rồi chạy các lệnh cài đặt được hiển thị.
Ba phần của file unit
| Phần | Thiết lập chính |
|---|---|
[Unit] | Description, và After=/Wants=network-online.target để ứng dụng chỉ khởi động sau khi mạng đã sẵn sàng |
[Service] | ExecStart (đường dẫn tuyệt đối), User, WorkingDirectory, Environment, Restart và RestartSec |
[Install] | WantedBy=multi-user.target — nơi systemctl enable gắn dịch vụ vào để nó tự chạy khi khởi động |
Sandboxing
Các tùy chọn hardening giúp dịch vụ an toàn hơn đáng kể mà không cần sửa code: NoNewPrivileges, ProtectSystem=strict (hệ thống file chỉ đọc, ngoại trừ ReadWritePaths), ProtectHome, PrivateTmp, PrivateDevices và các lớp bảo vệ kernel. Kiểm tra kết quả bằng systemd-analyze security my-app. Nếu ứng dụng cần ghi vào nơi khác, hãy thêm đường dẫn đó vào ReadWritePaths.
Dùng timer thay cho cron
Unit .timer kích hoạt một service oneshot theo lịch. Khác với cron, các lần chạy được ghi lại trong journal, timer có thể bù các lần chạy bị lỡ (Persistent=true) và bạn xem được lần chạy tiếp theo bằng systemctl list-timers. Để đổi một dòng cron thành giá trị OnCalendar, xem Trình tạo Cron Expression.
Cũng được tìm dưới tên: systemd service generator, tạo file systemd service, systemd unit file generator, tạo service systemd, file .service systemd, chạy node js bằng systemd, systemd timer thay cron, tạo file unit systemd.
Các công cụ dùng kèm tốt với Trình tạo systemd Service
- Tạo Cấu Hình Nginx — Chọn việc Nginx cần làm — phục vụ site tĩnh hoặc SPA, proxy tới ứng dụng Node/Python, hoặc chạy PHP — rồi đánh dấu các tùy chọn thêm.
- Tạo Dockerfile — Chọn stack của bạn và nhận ngay Dockerfile chuẩn production: multi-stage build, lớp cache cho dependency, người dùng non-root, health check và .dockerignore phù hợp, kèm giải thích từng dòng.
- Trình tạo Apache VirtualHost — Lấy cấu hình Apache virtual host đầy đủ cho tên miền của bạn: web tĩnh, WordPress, PHP-FPM hoặc reverse proxy tới ứng dụng Node hay Python.
- Trình tạo Caddyfile — Caddy tự động lấy chứng chỉ HTTPS — bạn chỉ cần mô tả trang web của mình.