Squid shm_open: අවසරය ප්රතික්ෂේප විය — හවුල් මතකයේ හිමිකාරිත්වය පරීක්ෂා කරන්න
Squid හි හවුල් මතක හිමිකාරිත්ව අසාර්ථකතා PID, ලොග් සහ කෑෂ් නාමාවලි අවසර දෝෂවලින් වෙන් කරන්න.
එකම අසාර්ථක Squid ආරම්භයේදී Could not read pid file සහ shm_open(...): Permission denied දෙකම පෙනිය හැක. ඒවා වෙනස් සම්පත් නම් කරයි. කෑෂ් නාමාවලියක හිමිකාරිත්වය නිවැරදි කිරීමෙන් ඒවායින් එකක්වත් තනිව නිවැරදි නොවේ.
Linux තුළ POSIX හවුල් මතක වස්තුව සාමාන්යයෙන් /dev/shm යටතේ නිරූපණය වේ. එහි හිමිකරු සහ ප්රවේශ මාදිලිය වැදගත් වේ. එබැවින් වෙනත් ධාවන අනන්යතාවයක් විසින් ඉතිරි කළ වස්තුවක්, squid.conf කියවිය හැකි වන අතර සවන් දෙන වරාය නිදහස් වුවද, පසුව එන ක්රියාවලියක් අසාර්ථක කළ හැක.
මෙම අවස්ථාව ආරම්භ වූ ආකාරය නැවත ගොඩනඟන්න
සේවාවේ සාමාන්ය ආරම්භය, ගැටලු විසඳීමේදී භාවිත කළ ඕනෑම අතින් සිදු කළ ආරම්භයක් සමඟ සසඳන්න. අතින් ආරම්භ කළ ක්රියාවලිය සහ පැකේජ කළ සේවාව වෙනස් පරිශීලකයන්, මාර්ග හෝ වින්යාස ගොනු භාවිත කළ හැක. වස්තුවක් පැරණි යැයි සැලකීමට පෙර තවත් Squid අවස්ථාවක් තවමත් ක්රියාත්මක දැයි තීරණය කරන්න.
පසුව අසාර්ථක වන නිශ්චිත ක්රියාව කියවන්න. PID දෝෂය වින්යාස කළ PID ස්ථානය සහ එහි මව් නාමාවලියට අදාළ වේ. ලොග් දෝෂය ලොග් ගොනුවට හෝ නාමාවලියට අදාළ වේ. කෑෂ් ආරම්භක දෝෂය ගබඩාවට අදාළ වේ. shm_open දෝෂය නම් කළ හවුල් මතක වස්තුවට අදාළ වන අතර ක්රියාවලියට යෙදෙන ආරක්ෂක ප්රතිපත්තියද ඇතුළත් විය හැක.
එක් එක් සම්පත සඳහා අවශ්ය ධාවන ප්රවේශය එහි වර්තමාන හිමිකරු සහ මාදිලිය සමඟ සසඳන්න. සාමාන්ය අවසර ප්රමාණවත් යැයි පෙනේ නම්, අදාළ SELinux හෝ AppArmor ප්රතික්ෂේප සාක්ෂි පරීක්ෂා කරන්න. “Permission denied” පමණක් කුමන ස්තරය ප්රවේශය ප්රතික්ෂේප කළේදැයි නොකියයි.
දෙවන ගැටලුවක් නොසාදා හිමිකාරිත්වය නිවැරදි කරන්න
ධාවන ගිණුම ස්ථාපනයේ සේවා වින්යාසය සමඟ සුසංගතව තබා ගන්න. සියල්ල nobody වෙත මාරු කිරීම සහායක ප්රවේශය බිඳ දැමිය හැකි අතර සේවාව විසින් කළමනාකරණය කරන ගොනු සමඟ නව නොගැලපීමක් ඇති කළ හැක.
/dev/shm තුළ Squid වැනි පෙනෙන සෑම වස්තුවක්ම මකා දැමීමද හොඳ පළමු පියවරක් නොවේ. නම් කළ වස්තුවක් සක්රීය අවස්ථාවකට අයත් විය හැක. අවශ්ය නම් පිරිසිදු කිරීම, බලපෑමට ලක් වූ සේවාව නතර කර ඇති අවස්ථාවේ තහවුරු කළ අත්හැර දැමූ සම්පතක් ඉලක්ක කළ යුතු අතර, පසුව සාමාන්ය සේවා යාන්ත්රණය හරහා ආරම්භ කළ යුතුය.
ප්රයෝජනවත් ප්රතිඵලය සුසංගත ආරම්භය සහ හිමිකාරිත්ව ආකෘතියකි. දෝෂය අතුරුදහන් වන තෙක් root ලෙස එක් විධානයක් ධාවනය කිරීම ඊළඟ සාමාන්ය නැවත ආරම්භය එම ගැටලුව සමඟම ඉතිරි කළ හැක.