Gall Could not read pid file a shm_open(...): Permission denied ymddangos yn ystod yr un cychwyn Squid a fethodd. Maent yn enwi adnoddau gwahanol. Nid yw trwsio perchnogaeth cyfeiriadur storfa, ynddo'i hun, yn trwsio'r naill na'r llall.

Ar Linux, cynrychiolir gwrthrych cof a rennir POSIX fel arfer o dan /dev/shm. Mae ei berchennog a'i fodd mynediad yn bwysig. Felly gall gwrthrych a adawyd gan hunaniaeth redeg wahanol beri i broses ddiweddarach fethu, hyd yn oed pan fo squid.conf yn ddarllenadwy a'r porth gwrando'n rhydd.

Ail-greu sut y dechreuodd y rhifyn hwn

Cymharwch lansiad arferol y gwasanaeth ag unrhyw lansiad â llaw a ddefnyddiwyd wrth ddileu problemau. Gall proses a gychwynnwyd â llaw a'r gwasanaeth pecynnu ddefnyddio gwahanol ddefnyddwyr, llwybrau neu ffeiliau ffurfweddu. Cadarnhewch a yw rhifyn arall o Squid yn dal i redeg cyn trin gwrthrych fel un darfodedig.

Yna darllenwch y gweithrediad sy'n methu'n union. Mae gwall PID yn ymwneud â lleoliad PID wedi'i ffurfweddu a'i gyfeiriadur rhiant. Mae gwall log yn ymwneud â'r ffeil log neu'r cyfeiriadur. Mae gwall cychwyn storfa yn ymwneud â storio. Mae gwall shm_open yn ymwneud â'r gwrthrych cof a rennir a enwir a gall hefyd gynnwys y polisi diogelwch a gymhwysir i'r broses.

Ar gyfer pob adnodd, cymharwch y mynediad rhedeg gofynnol â'i berchennog a'i fodd presennol. Os yw caniatadau cyffredin yn ymddangos yn ddigonol, archwiliwch y dystiolaeth wadu berthnasol yn SELinux neu AppArmor. Nid yw “Permission denied” ar ei ben ei hun yn nodi pa haen a wrthododd fynediad.

Trwsiwch berchnogaeth heb greu ail broblem

Cadwch y cyfrif rhedeg yn gyson â ffurfweddiad gwasanaeth y gosodiad. Gall newid popeth i nobody dorri mynediad helpwyr a chyflwyno anghysondeb newydd â ffeiliau a reolir gan y gwasanaeth.

Nid yw dileu pob gwrthrych sy'n edrych fel Squid yn /dev/shm yn gam cyntaf da chwaith. Gall gwrthrych a enwir berthyn i rifyn gweithredol. Dylai glanhau, lle bo angen, dargedu adnodd a adawyd wedi'i gadarnhau gyda'r gwasanaeth yr effeithiwyd arno wedi'i stopio, ac yna cychwyn trwy fecanwaith arferol y gwasanaeth.

Y canlyniad defnyddiol yw model cychwyn a pherchnogaeth cyson. Gall rhedeg un gorchymyn fel root nes i'r gwall ddiflannu adael yr ailgychwyn arferol nesaf gyda'r un broblem yn union.

Erthyglau cysylltiedig