فایل PID ناپدید میشود. بررسی کنید systemd چگونه Squid را راه میاندازد.
پیش از آنکه ناپدید شدن فایل PID را مشکل مجوز بدانید، رفتار Squid در پیشزمینه یا بهصورت دیمن را با unit مربوط در systemd هماهنگ کنید.
اگر فایل PID مربوط به Squid ظاهر شود و بیدرنگ ناپدید شود، Type= در unit بارگذاریشده را با فایل اجرایی واقعی و آرگومانهایش مقایسه کنید. سرویس Type=simple انتظار دارد فرایندی که آغاز شده، فرایند اصلی بماند. فرمانی که به حالت دیمن میرود و میگذارد آن فرایند پایان یابد، قرارداد دیگری را دنبال میکند؛ systemd میتواند آن را تمامشده بداند و بقیه فرایندهای سرویس را برچیند.
| تنظیم | صاحب و هدف |
|---|---|
pid_filename | Squid در نسخههایی که این دستور را دارند، PID خود را در این مسیر مینویسد |
PIDFile= | systemd در جایی که آن مدل سرویس نیاز دارد، PID را از این مسیر میخواند |
PIDFile= نه فایل را میسازد و نه فرمانی را که به حالت دیمن میرود به فرایند پیشزمینه تبدیل میکند. در چیدمانی با fork، نوع سرویس، رفتار دیمن و مسیر باید هماهنگ باشند. در چیدمان پیشزمینه، مدیر باید فرایند پایدار موردنظر را دنبال کند.
Squid میان -N یعنی پرهیز از حالت دیمن و --foreground یعنی نگهداشتن فرایند والد تا پایان فرزندان تفاوت میگذارد. بر پایه ساخت و آرایش سرویس انتخاب کنید. unit بستهبندیشده ممکن است بهجای آن از اعلان آمادهبودن یا گزینههای دیگر وابسته به ساخت استفاده کند؛ هنگام سفارشیسازی آن مدل را حفظ کنید.
اکنون ژورنال را با پیامهای آغازین Squid مقایسه کنید. خطای نحوی، پوشه اجرای غیرقابلدسترس یا مقداردهی اولیه مهلک میتواند واقعاً سرویس را متوقف و فایل PID را حذف کند. ناپدید شدن بهتنهایی آن خروج را از ردیابی نادرست فرایند جدا نمیکند. بهجای تغییر پیدرپی مالکیت پوشه، علتی را که آن پیامها پشتیبانی میکنند برطرف کنید.