Squid shm_open: kebenaran ditolak — periksa pemilikan memori kongsi
Asingkan kegagalan pemilikan memori kongsi Squid daripada ralat kebenaran PID, log dan direktori cache.
Could not read pid file dan shm_open(...): Permission denied boleh muncul semasa kegagalan permulaan Squid yang sama. Kedua-duanya menamakan sumber yang berbeza. Membaiki pemilikan direktori cache tidak, dengan sendirinya, membaiki mana-mana satu daripadanya.
Pada Linux, objek memori kongsi POSIX biasanya diwakili di bawah /dev/shm. Pemilik dan mod aksesnya penting. Objek yang ditinggalkan oleh identiti masa jalan lain boleh menyebabkan proses kemudian gagal walaupun squid.conf boleh dibaca dan port mendengar bebas.
Bina semula cara instans ini dimulakan
Bandingkan pelancaran perkhidmatan biasa dengan mana-mana pelancaran manual yang digunakan semasa penyelesaian masalah. Proses yang dimulakan secara manual dan perkhidmatan berpakej mungkin menggunakan pengguna, laluan atau fail konfigurasi yang berbeza. Tentukan sama ada instans Squid lain masih berjalan sebelum menganggap objek sebagai lapuk.
Kemudian baca operasi tepat yang gagal. Ralat PID berkaitan lokasi PID yang dikonfigurasikan dan direktori induknya. Ralat log berkaitan fail atau direktori log. Ralat permulaan cache berkaitan storan. Ralat shm_open berkaitan objek memori kongsi bernama dan boleh juga melibatkan dasar keselamatan yang dikenakan pada proses.
Bagi setiap sumber, bandingkan akses masa jalan yang diperlukan dengan pemilik dan mod semasanya. Jika kebenaran biasa kelihatan mencukupi, periksa bukti penolakan SELinux atau AppArmor yang berkaitan. “Permission denied” sahaja tidak mengenal pasti lapisan mana yang menolak akses.
Baiki pemilikan tanpa mencipta masalah kedua
Kekalkan akaun masa jalan konsisten dengan konfigurasi perkhidmatan pemasangan. Menukar semuanya kepada nobody boleh merosakkan akses pembantu dan memperkenalkan ketakpadanan baharu dengan fail yang diuruskan perkhidmatan.
Memadam setiap objek yang kelihatan seperti Squid dalam /dev/shm juga bukan langkah pertama yang baik. Objek bernama mungkin milik instans aktif. Pembersihan, apabila perlu, harus menyasarkan sumber terabai yang disahkan dengan perkhidmatan terjejas dihentikan, diikuti permulaan melalui mekanisme perkhidmatan biasa.
Hasil yang berguna ialah model pelancaran dan pemilikan yang konsisten. Menjalankan satu arahan sebagai root sehingga ralat hilang boleh meninggalkan permulaan semula rutin seterusnya dengan masalah yang sama.