Xizmat ishlamay qoladi, jurnallarda spawn va katalog tilga olinadi, birinchi instinkt esa VPN konfiguratsiyasini tekshirishdir. O'sha faylda hali hech narsa o'qilmagan. systemd jarayonni tayyorlayotganda, bajariladigan fayl ishga tushishidan oldin muvaffaqiyatsizlikka uchradi, shuning uchun hech qanday parser, hech qanday sertifikat va hech qanday uzoq host so'ralmagan. Holat kodini OpenVPN haqida emas, systemd haqida bayonot sifatida o'qish buni qisqa tekshiruvga aylantiradi.

Holat kodini ilovadan oldin o'qing

Xizmat nomidan keyingi raqamli kod muvaffaqiyatsiz bo'lgan bosqichni nomlaydi. Katalog xatosi CHDIR holati sifatida bildiriladi, bajarib bo'lmagan fayl esa butunlay boshqa koddir. Ikkalasi xulosa satrida o'xshash ko'rinadi va sabablarida hech qanday umumiylik yo'q.

Bu farq muhim, chunki tuzatishlar turli fayllarda. CHDIR xatosi yo'l va xizmatning uni qanday ko'rishiga tegishli. Exec xatosi binar fayl, uning interpretatori yoki aloqasiz mountga tegishli. VPN uzoq nuqtasini, shifrlar ro'yxatini yoki sertifikat yo'lini o'zgartirish ikkalasini ham hal qilmaydi.

Xatoning muvaffaqiyatli ishlashdan keyin emas, boshlanishida ekanini tasdiqlang. Agar xizmat kecha ishlagan bo'lsa-yu, endi xuddi shu bosqichda ishlamay qolsa, katalog, uning ruxsatlari yoki unitning o'zi o'zgargan va qidiriladigan dalil shu o'zgarishdir.

Unitdan qayerda bo'lishni xohlashini so'rang

O'rnatilgan deb o'ylagan faylni emas, samarali unitni o'qing, chunki drop-in fayllar asosiy unitni hech tahrirlamasdan ish katalogini bekor qilishi mumkin. Show chiqishi savolga to'g'ridan-to'g'ri javob beradi:

systemctl cat [email protected]
systemctl show [email protected] -p WorkingDirectory -p RootDirectory -p User -p ProtectHome
journalctl -u [email protected] -b --no-pager | tail -30

Upstream server shabloni uchun ish katalogi server konfiguratsiya katalogidir va instance nomi uning ichidagi profilni tanlaydi. Branch nomli instance shu sababli o'z faylini o'sha katalogda kutadi va boshqa joyga qo'yilgan profil ish katalogi talabini umuman qondirmaydi.

Unit talab qilgan narsani mavjud narsa bilan solishtiring. Ilgari mavjud bo'lgan yo'l, endi boshqa joyni ko'rsatadigan ramziy havola yoki endi katalogga mos kelmaydigan instance nomi aynan shu xatoni keltiradigan oddiy o'zgarishlardir.

Yo'lni xizmat ko'radigan tarzda tekshiring

Sizning shell va xizmat bir xil fayl tizimi ko'rinishini baham ko'rmaydi. Sozlangan ildiz katalog yoki root image unit ichida mutlaq yo'lning ma'nosini o'zgartiradi va hostda aniq mavjud yo'l o'sha nom maydonida bo'lmasligi mumkin. Qo'lda sinovga ishonishdan oldin unit sozlamalarini o'qing.

Ruxsatlar muammoni yanada og'irlashtiradi. Xizmat ma'lum bir foydalanuvchi sifatida ishlaydi va bu foydalanuvchi maqsadga yetish uchun har bir ota katalogdan o'ta olishi kerak, faqat maqsadning o'zini o'qishi emas. Root uchun o'qiladigan, lekin xizmat foydalanuvchisi uchun o'tib bo'lmaydigan katalog yo'qolgan yo'lga o'xshash xatoni keltiradi.

namei -l /etc/openvpn/server
systemctl show [email protected] -p ProtectSystem -p ReadOnlyPaths

Qattiqlashtirish sozlamalari ham bu manzaraning bir qismidir. Uy kataloglarini yashiruvchi yoki fayl tizimining bir qismini faqat o'qish uchun qiluvchi unit sozlangani kabi ish qiladi va ish katalogi sandbox hali ochib turgan joyda bo'lishi kerak.

Egasini tuzating, keyin boshqa xato kuting

Tartibni yoki unitni o'sha konfiguratsiyaga ega bo'lgan kishi orqali tuzating. Profilni kutilgan katalogga ko'chirish tartib noto'g'ri bo'lganda qonuniy tuzatishdir, lekin kirib bo'lmaydigan katalogni tushuntirmaydi, shuning uchun buni umumiy javob deb bilmang.

Konfiguratsiya daraxtida ruxsatlarni kengaytirish yoki sandboxni olib tashlash qisqa yo'liga qarshi turing. Ikkalasi ham simptomni yo'q qiladi, shu bilan birga u yerga ataylab qo'yilgan himoyalarni olib tashlaydi va keyingi xatoni talqin qilish qiyinroq bo'ladi.

Instance-ni qayta ishga tushiring va muvaffaqiyat deb faraz qilish o'rniga keyingi hodisani o'qing. Ehtimoliy keyingi xato OpenVPN o'z konfiguratsiya faylini ocha olmasligidir, bu esa taraqqiyot: ish katalogiga kirildi va parser endi ishlayapti. U yerdan unitning haqiqiy fayl xaritalashini kuzatib boring, tarmoq muammolarini hal qilishga qaytmang.

systemd bajarish ma'lumotnomasi ish katalogining ildiz kataloglar va sandbox bilan birga qanday talqin qilinishini belgilaydi. Esda tutish kerak bo'lgan naqsh oddiy: har bir holat kodi boshqa bosqichni nomlaydi va faqat ilovaning o'z xatolari ilovani tasvirlaydi.

O'xshash maqolalar