Başladıcı OpenVPN-i işə salmaqdan imtina edəndə, çünki PID faylı artıq mövcuddur, təbii oxunuş hansısa yerdə tunelin işlədiyidir. Bu oxunuş kifayət qədər tez-tez səhvdir və hər hansı bir şey silinməzdən əvvəl yoxlamağa dəyər. İşləmə qovluğundakı fayl uçotdur, uçot isə heç bir proses qoymayan qəzaları, yenidən başlatmaları və yarımçıq dayandırmaları yaşayır. Məsələni iki sual həll edir: canlı proses varmı və o proses bu instansa aiddirmi?

Fayldan deyil, xidmətdən başlayın

İmtina adətən OpenVPN-in özündən deyil, başladıcıdan gəlir. O, yolu oxuyur, orada nəyisə tapır və konfiqurasiyanı təhlil etməzdən əvvəl dayanır. Deməli, ilk sual tunelə deyil, başladıcının müqaviləsinə aiddir.

Mesajı çap edən unit-i və ya skripti oxuyun və üç şeyi qeyd edin: yoxladığı yol, elan etdiyi xidmət tipi və faylı ümumiyyətlə yazmağa cavabdeh olub-olmadığı. Müasir unit sadə və ya bildiriş nəzarətindən istifadə edib PID faylına heç toxunmaya bilər, köhnə init skripti isə onu özü yarada bilər. Yoxlamanı bir modeldən digərinə köçürmək məhz bu cür imtina yaradır. Nəyisə şərh etməzdən əvvəl hansı modelin istifadə olunduğunu öyrənin.

Yalnız bundan sonra sual instansın həqiqətən işləyib-işləmədiyinə çevrilir.

Bu identifikatorun sizin instansınıza aid olub-olmadığını yoxlayın

Fayldakı rəqəm bir rəqəmin yazıldığını sübut edir. O, həmin identifikatorla prosesin indi mövcud olduğunu sübut etmir və prosesin sizin olduğunu qətiyyən sübut etmir, çünki identifikatorlar yenidən başlatmadan sonra təkrar istifadə olunur.

Prosesin başlama vaxtını faylın zaman damğası ilə, icra olunan faylı unit-in əmri ilə, xidmət üzvlüyünü isə unit-in adı ilə müqayisə edin. Üçündən hər hansı birində uyğunsuzluq tunelə deyil, uçota baxdığınız deməkdir.

Konteynerlər və ya bir neçə ad fəzası işlədən hostda identifikator bir görünüşdə mənalı, digərində isə yox ola bilər. Prosesi görməmək də onun mövcud olmadığına sübut deyil, əgər hesabınız onu yoxlaya bilmirsə. Nəticə çıxarmazdan əvvəl başladıcının istifadə etdiyi kontekstdən yoxlayın.

systemctl status [email protected]
ps -o pid,lstart,args -p "$(cat /run/openvpn/vpn.pid)"

Başladıcı faylla nə etməyi vəd etmişdi

PIDFile= xidmət menecerinə əsas prosesin identifikatorunu haradan oxuyacağını deyir. Menecer o faylı yazmır, amma dayandırmadan sonra qalanı silir, buna görə də yarımçıq çıxış fayl qoya bilər.

Məsuliyyətin bu bölgüsü insanların səhv kimi bildirdiyi iki simptomu izah edir. Heç vaxt görünməyən fayl daemonun və ya skriptinin onu yaza bilmədiyini bildirir, nəzarətin səhv qurulduğunu deyil. Dayandırmadan sonra qalan fayl isə dayandırma yolunun tamamlanmadığını bildirir.

Bu, həmçinin niyə mövcud təlimatların nəzarət əsas prosesi birbaşa izləyə bildikdə bu konvensiyadan çəkinməyi təklif etdiyini izah edir. Bu təlimat paketlənmiş unit-in tipini dəyişmək üçün icazə deyil, çünki daemonun ön planda, fork və ya bildiriş davranışı unit-in elan etdiyi ilə uyğun olmalıdır. Daemonu dəyişmədən tipi dəyişin və tunel işləyərkən nasazlıq bildirən unit alırsınız, ya da əksi. Cütü uyğunlaşdırın, ya da hər ikisini buraxın. systemd xidmət arayışı sahiblik bölgüsünü təsvir edir.

Təmiz dayandırma və yarımçıq çıxış

Təmiz dayandırma daemondan çıxmağı xahiş edir, onu gözləyir və menecerə öz uçotunu qaydaya salmağa imkan verir. Yarımçıq çıxış, öldürülmüş proses və ya dayandırma zamanı yenidən başlatma bu ardıcıllığın hissələrini atlayır və qalan fayl olur. Qəzadan sonra onu tapmaq dayandırmanın bitmədiyini bildirir, nəyinsə dinlədiyini deyil.

Sonra faylın zaman damğasını son yükləmə və unit-in son dayandırması ilə müqayisə edin.

Sonra canlı dəlilləri birbaşa yoxlayın. VPN portuna bağlanmış soket və ünvanı olan tunel interfeysi nəyinsə işlədiyinə sübutdur, işləmə qovluğundakı mətn faylının heç vaxt ola bilmədiyi şəkildə. Əgər hər ikisi yoxdursa, fayl nə iddia edirsə etsin, heç nə işləmir.

Faylı vərdiş kimi silməyi dayandırın

Heç bir instansın ona sahib olmadığını və başladıcının bu davranışı sənədləşdirdiyini müəyyən etdikdən sonra onu silmək qanuni bərpa addımıdır.

Daimi başlamadan əvvəl vərdişi kimi isə o, yan keçməyə çalışdığınız yoxlamanı puça çıxarır. Əgər köhnə fayllar hər təmiz dayandırmadan sonra qayıdırsa, yazıcı ilə dayandırma həyat dövrü yolun kimə aid olduğunda razılaşmır və bu razılaşmazlıq düzəltməyə dəyən səhvdir.

Hosta müstəqil bir çıxış yolu saxlayın, bir instansı normal meneceri ilə başladın və ilk nəticəni oxuyun. Növbəti şəxs ya işləyən, ya da özünü izah edən unit alır.

Əlaqəli məqalələr