Nếu tệp PID của Squid xuất hiện rồi biến mất ngay, hãy so sánh Type= của unit đã nạp với tệp thực thi thực tế và các đối số của nó. Dịch vụ kiểu Type=simple mong đợi tiến trình được khởi chạy vẫn là tiến trình chính. Một lệnh chuyển sang daemon và để tiến trình đó kết thúc tuân theo một giao kèo khác; systemd có thể coi nó đã xong và dỡ bỏ các tiến trình dịch vụ còn lại.

Cấu hìnhChủ sở hữu và mục đích
pid_filenameSquid ghi PID của mình vào đường dẫn này trên các phiên bản có chỉ thị đó
PIDFile=systemd đọc PID từ đường dẫn này ở nơi mô hình dịch vụ đó cần đến

PIDFile= không tạo tệp và không biến một lệnh chuyển sang daemon thành tiến trình tiền cảnh. Trong cách bố trí có fork, loại dịch vụ, hành vi daemon và đường dẫn phải khớp nhau. Trong cách bố trí tiền cảnh, trình quản lý phải theo dõi tiến trình thường trú đã định.

Squid phân biệt -N, tức tránh chế độ daemon, với --foreground, tức giữ tiến trình cha cho đến khi các tiến trình con kết thúc. Chọn theo bản dựng và cách bố trí dịch vụ. Unit đã đóng gói có thể dùng thông báo sẵn sàng hoặc các tùy chọn khác đặc thù cho bản dựng; hãy giữ mô hình đó khi tùy chỉnh.

Giờ hãy so nhật ký với các thông điệp khởi động của Squid. Lỗi cú pháp, thư mục thực thi không truy cập được hoặc khởi tạo nghiêm trọng thực sự có thể dừng dịch vụ và xóa tệp PID của nó. Riêng việc biến mất không phân biệt lần thoát đó với việc theo dõi tiến trình sai. Hãy sửa nguyên nhân mà các thông điệp đó chứng minh thay vì liên tục đổi chủ sở hữu thư mục.

Bài viết liên quan