Pi'da VPN mijozi segfault berdimi? Avval jarayonni yozib oling
Qobiq segmentation fault chiqaradi va karta qayta yoziladi. Har qanday apparatni almashtirishdan oldin bajariladigan fayl, versiya va halokat yozuvini qayd eting.
Mijozni ishga tushirasiz, terminal Segmentation fault (core dumped) chiqaradi va keyingi soat karta qayta yozilishiga ketadi. Bu xabar bitta jarayon bir lahzada qanday o'lganini tasvirlaydi. U plata shikastlangan deb aytmaydi va quvvat manbai, xotira yoki tasvirni ham oqlamaydi.
Qobiq chiqargan satrdan uning orqasidagi jarayonga qarab ishlang. Foydali faktlar: qaysi bajariladigan fayl muvaffaqiyatsiz bo'ldi, qanday muhitda va ulanishning qaysi bosqichida.
Qobiq chiqargan satrdan boshlang
Buyrug'ingizdagi nom ko'pincha boshqa binarni ishga tushiruvchi o'ram yoki ishga tushiruvchi bo'ladi, shuning uchun yadro aslida qaysi bajariladigan faylni tugatganini tasdiqlang. To'liq yo'lni, paket va ilova versiyasini, arxitekturani, OS va yadro versiyasini, uni ishga tushirgan hisobni va aniq vaqtni yozib oling. VPN nomidagi qobiq buyrug'i osonlikcha yordamchi jarayonni ishga tushirishi mumkin va yozuv shu yordamchini nomlaydi. O'tgan oy o'rnatgan paketning versiya satrini ko'chirish nima ishlaganligi haqida hech narsa demaydi.
Halokatdan darhol oldin nima bo'lganini belgilang: ishga tushish, profil tahlili, autentifikatsiya yoki allaqachon trafik o'tkazayotgan sessiya. Bu to'rt bosqich qidiruvni segfault so'zidan ancha ko'proq toraytiradi. O'sha voqea atrofidagi qisqa jurnal oynasini saqlang va yozuv aytmaguncha qaysi so'nggi o'zgarish sabab bo'lgani haqidagi taxminlarni chetga qo'ying.
Xotira tasviri bor-yo'qligini aniqlang
core fayli ma'lumotnomasi dumpni tugatish paytida yoziladigan jarayon xotirasi tasviri deb ta'riflaydi va bu yozishga to'sqinlik qiladigan shartlarni ham sanaydi. Bu shartlarga nol resurs chegarasi va dumpni ishchi katalogdan boshqa joyga yo'naltiruvchi core shabloni kiradi. Shuning uchun core nomli fayl yo'qligi halokat bo'lgan-bo'lmaganligi haqida hech narsani isbotlamaydi. Tizim hech qanday dalil yaratmadi degan xulosaga kelishdan oldin sozlangan shablon va chegarani tekshiring.
systemd yig'uvchisidan foydalanadigan tizimda qo'llab-quvvatlanadigan ko'rinish saqlangan yozuvni bajariladigan fayl va vaqt bilan bog'laydi. Jurnal yozuvi va o'qish mumkin bo'lgan xotira tasviri ikki xil artefaktdir: saqlash siyosati va ruxsatlar birini ikkinchisisiz qoldirishi mumkin. Tarqatma yoki ilova xizmatchisidan ular qo'llab-quvvatlaydigan diagnostika ish oqimini so'rang, chunki boshqa build yoki boshqa kutubxonalar to'plamidan olingan trace odatda ularning vaqtini behuda sarflaydi.
sysctl kernel.core_pattern
ulimit -c
coredumpctl list --since "1 hour ago" --no-pager
coredumpctl info /usr/sbin/openvpn
Bu o'qishlarni haqiqatan halokatga uchragan mashinada takrorlang. Ularni yangi o'rnatishda bajarish hech kim so'ramagan savolga javob beradi.
Dumpga sir olib yuruvchi material sifatida qarang
Jarayon xotirasida hisob ma'lumotlari, sessiya kalitlari va profil tarkibi bo'lishi mumkin, bu dumpni yonidagi matn jurnalidan sezgirroq qiladi. Jurnalni tahrirlash shaffof bo'lmagan xotira tasviri uchun hech narsa qilmaydi va oddiy issue trekerlari ilovalarni qo'llab-quvvatlash mavzusidan ancha uzoq saqlaydi. Faylni sotuvchi yoki xizmatchi taqdim etgan maxfiy kanal orqali ko'chiring. Ochiq issueda xom dump joylashtirish jarayon o'lgan paytda xotirada bo'lgan hamma narsani oshkor qiladi va kimdir tekshirmaguncha bu nima ekanini bila olmaysiz.
Agar xizmatchi trace so'rasa, uni qaysi bajariladigan fayl va qaysi kutubxonalardan xohlayotganini so'rang. Ramkalari e'lon qilingan buildga mos kelmaydigan backtracega ishonish qiyin va uni noto'g'ri o'qish oson.
Biror narsani almashtirishdan oldin kelib chiqishini tekshiring
Paket kelib chiqishi va fayl yaxlitligini o'rnatish egasi orqali tasdiqlang va har qanday nazorat ostidagi ta'mirdan oldin konfiguratsiya va identifikatsiya materialini saqlang. Faqat toza o'rnatish ishga tushishini ko'rish uchun dalilning yagona nusxasini qayta yozmang. Ishlayotgan yangi tasvir yangi tasvir ishlashini aytadi. U eskisida buzilgan paket, ishlamayotgan karta yoki bu arxitekturada doim xato beradigan binar bor-yo'qligini aytmaydi.
Aloqasiz dasturlar ham ishlamasa yoki tizim xotira, quvvat yoki yadro xatolarini jurnalga yozsa, bu kuzatishlarni platforma tekshiruvi uchun saqlang. Ular qamrovni kengaytiradi; har bir segfault ishlamayotgan RAM yoki buzilgan tasvirdan keladi deb isbotlamaydi.
Maqsadli tuzatishdan keyin xuddi shu ruxsat etilgan ishga tushirish va xuddi shu VPN amalini xuddi shu apparatda takrorlang. Qaysi nosozlik qaysi versiyada to'xtaganini ayting. Faqat toza yuklanish nosoz komponentni aniqlamaydi va keyingi apparat nosozligini oldindan aytmaydi.