Squid shm_open: צוטריט אָפּגעזאָגט — פּרוּווט דעם אייגנטום פֿון צעטיילטער זכּרון
טרענט אָפּ Squid פֿעלער אין אייגנטום פֿון צעטיילטער זכּרון פֿון PID, לאָג און cache directory פּערמיסיע פֿעלער.
Could not read pid file און shm_open(...): Permission denied קענען דערשײַנען בעת דעם זעלבן דורכגעפֿאַלענעם Squid אָנפֿאַנג. זיי באַנעמען פֿאַרשיידענע רעסורסן. פֿאַרריכטן דעם אייגנטום פֿון אַ cache directory פֿאַרריכטעט נישט אַליין קיין איינע פֿון זיי.
אויף Linux ווערט אַ POSIX צעטיילטער-זכּרון אָביעקט געוויינטלעך פֿאָרגעשטעלט אונטער /dev/shm. זײַן באַזיצער און צוטריט־מאָדע זענען וויכטיק. דערפֿאַר קען אַן אָביעקט וואָס אַן אַנדער אויספֿיר־אידענטיטעט האָט איבערגעלאָזט פֿאַרשאַפֿן אַ שפּעטערדיקן פּראָצעס דורכצופֿאַלן, אַפֿילו ווען squid.conf איז לייענבאַר און דער צוהער־פּאָרט איז פֿרײַ.
באַשאַף ווידער ווי די אינסטאַנץ האָט זיך אָנגעהויבן
פֿאַרגלײַך דעם נאָרמאַלן סערוויס־אָנפֿאַנג מיט יעדן מאַנועלן אָנפֿאַנג וואָס איז גענוצט געוואָרן בעת פֿעלער־זוכן. אַ מאַנועל אָנגעהויבענער פּראָצעס און דער פּאַקירטער סערוויס קענען נוצן פֿאַרשיידענע באַנוצער, וועגן אָדער קאָנפֿיגוריר־טעקעס. באַשטימט צי נאָך אַן אַנדער Squid אינסטאַנץ לויפֿט פֿאַר איר באַהאַנדלט אַן אָביעקט ווי פֿאַרעלטערט.
דערנאָך לייענט די פּינקטלעכע דורכגעפֿאַלענע אָפּעראַציע. אַ PID פֿעלער באַטרעפֿט דעם קאָנפֿיגורירטן PID אָרט און זײַן עלטערן directory. אַ לאָג פֿעלער באַטרעפֿט די לאָג טעקע אָדער directory. אַ cache אָנפֿאַנג פֿעלער באַטרעפֿט די סטאָרידזש. אַ shm_open פֿעלער באַטרעפֿט דעם באַנעמטן צעטיילטער-זכּרון אָביעקט און קען אויך אַרײַננעמען די זיכערקייט־פּאָליטיק וואָס ווערט אָנגעווענדט אויף דעם פּראָצעס.
פֿאַר יעדער רעסורס, פֿאַרגלײַך דעם פֿאָדערלעכן אויספֿיר־צוטריט מיט זײַן איצטיקן באַזיצער און מאָדע. אויב געוויינטלעכע פּערמיסיעס זעען אויס גענוג, פּרוּווט די באַטרעפֿנדיקע אָפּזאָגונג־באַווײַזן אין SELinux אָדער AppArmor. בלויז “Permission denied” באַשטימט נישט וועלכער שיכט האָט אָפּגעזאָגט דעם צוטריט.
פֿאַרריכט דעם אייגנטום אָן שאַפֿן אַ צווייטן פּראָבלעם
האַלט דעם אויספֿיר־חשבון פּאַסיק צו דער סערוויס־קאָנפֿיגוראציע פֿון דער אינסטאַלאַציע. איבערקערן אַלץ צו nobody קען צעברעכן דעם צוטריט פֿון הילפּפּראָגראַמען און אַרײַנברענגען אַ נײַעם אומפּאַסיקייט מיט סערוויס־פֿאַרוואַלטעטע טעקעס.
אויך אָפּמעקן יעדן Squid־ענלעכן אָביעקט אין /dev/shm איז נישט קיין גוטער ערשטער שריט. אַ באַנעמטער אָביעקט קען געהערן צו אַן אַקטיוון אינסטאַנץ. רייניקונג, ווען נייטיק, זאָל צילן אַ באַשטעטיקט פֿאַרלאָזטן רעסורס בשעת דער באַטראָפֿענער סערוויס איז אָפּגעשטעלט, און דערנאָך אָנפֿאַנג דורכן נאָרמאַלן סערוויס־מעכאַניזם.
דער נוצלעכער רעזולטאַט איז אַ פּאַסיק אָנפֿאַנג־ און אייגנטום־מאָדעל. אויספֿירן איין באַפֿעל ווי root ביז דער פֿעלער פֿאַרשווינדט קען איבערלאָזן דעם קומענדיקן רוטין־ווידעראָנפֿאַנג מיט פּונקט דעם זעלבן פּראָבלעם.