systemctl systemd PID 1 emas deb aytadi: keyin nima?
PID 1 haqidagi xabar OpenVPN haqida emas, muhit haqida. PID 1 sifatida nima ishlayotganini tekshiring, systemd qo'llab-quvvatlanadigan joyda uni yoqing va keyin haqiqiy xatoni o'qing.
Agar systemctl start openvpn-client@office ishga tushirilsa va tizim systemd bilan yuklanmaganligi haqida xabar chiqsa, bu xizmat nosozligidek ko'rinadi. Bu umuman xizmat nosozligi emas: siz chaqirgan systemctl gaplashish uchun ishlab turgan menejer topmaydi, shuning uchun OpenVPN haqida hech narsa tekshirilmagan. sudo menejer yaratmaydi, unit faylini o'rnatish ham uni yaratmaydi. Buyruq va mashina ikki xil dunyodan keladi, xato esa buning ko'ringan yagona joyi.
Avval buyruq bajariladigan joyda PID 1 qaysi jarayonga tegishli ekanini so'rang, chunki bu javob unit fayllari umuman bor-yo'qligini hal qiladi.
Xato OpenVPN emas, muhitni nomlaydi
systemctl mijoz, menejer emas. U socket orqali tizim menejeriga ulanadi, qarshi tomonda menejer bo'lmasa, odamlar forumlarga yopishtiradigan xabarni chop etadi. ps -p 1 -o pid=,comm= aslida PID 1 sifatida nima ishlayotganini ko'rsatadi va javob ko'pincha shell, init o'rami yoki konteynerning o'z kirish nuqtasi bo'ladi. Bunday holatda unit fayli to'liq to'g'ri bo'lishi mumkin va shunga qaramay hech qachon o'qilmasligi mumkin. Buyruqni root sifatida takrorlash faqat mijozning hisob ma'lumotlarini o'zgartiradi.
Birinchi satrdan oldin butun xabarni o'qing. Menejerning o'zidan kelgan xato, masalan yo'q unit yoki bajarilmagan shart, siz unga yetganingizni bildiradi; bu xato yetmaganingizni bildiradi.
WSL: systemd ni yoqish konfiguratsiya o'zgarishi
WSL keyingi versiyalarda systemd qo'llab-quvvatlashini oldi, lekin bu xususiyat har bir distributiv uchun alohida yoqiladi va faqat o'rnatilgan WSL versiyasi uni qo'llab-quvvatlaydigan joyda ishlaydi. wsl --version Windows tomonida nima borligingizni ko'rsatadi, distributivning esa /etc/wsl.conf faylida [boot] bo'limi bor, unda systemd=true yozilgan. O'sha faylni mavjud bo'limlarni olib tashlamasdan tahrirlang, so'ng o'zgarish kuchga kirishi uchun WSL nusxasini qayta ishga tushiring. wsl --shutdown ishlab turgan har bir distributivni to'xtatadi, shuning uchun avval ishingizni saqlang.
Qayta ochgandan so'ng, OpenVPN unitiga tegishdan oldin menejerni tasdiqlang: ps -p 1 -o comm= ko'rsatishi kerak systemd. systemd ni yoqish profil, hisob ma'lumotlari yoki nusxa nomini bermaydi, shuning uchun keyingi xato PID 1 emas, shulardan biri haqida bo'ladi.
Konteynerlar unit emas, o'z kirish nuqtasini ishga tushiradi
Oddiy konteyner o'z kirish nuqtasi yoki buyrug'i belgilagan narsani ishga tushiradi va qanday paketlar o'rnatishingizdan qat'i nazar, u systemd bilan yuklangan mashina emas. Rasmga systemctl qo'shish sizga ulanadigan hech narsasi yo'q mijoz beradi. Community OpenVPN uchun qo'llab-quvvatlanadigan namuna odatda old planda ishlaydigan jarayon, openvpn --config /path/to/client.conf, uni kirish nuqtasi ishga tushiradi va tashqaridan nazorat qilinadi. O'sha egasi ishga tushirish, signallar va o'chirishni boshqaradi va tunnelni boshqaradigan yagona narsa o'sha bo'lishi kerak.
O'sha tunnelni allaqachon boshqarayotgan kirish nuqtasi yonida hech qachon interaktiv nusxani ishga tushirmang, chunki ikki jarayon qurilma va marshrutlar uchun kurashadi. Konteyner ichidagi minimal init jarayoni bolalarni yig'adi va signallarni uzatadi; u rasmni unitlari bor hostga aylantirmaydi.
Agar joylashtirish haqiqatan ham konteyner ichida systemd talab qilsa, unga shu uchun ataylab loyihalangan rasm kerak, systemctl shikoyat qilishni to'xtatguncha qo'shiladigan qo'shimcha imtiyozlar emas.
Menejer mavjud bo'lgach keyingi xatoni o'qing
Haqiqiy menejer xizmatni ishga tushirishi bilan foydali xatolar boshlanadi. Qurilma ruxsati nosozligi, konfiguratsiyani tahlil qilish xatosi, yo'q hisob ma'lumotlari va yetib bo'lmaydigan hamkor — bular PID 1 xabari hech qachon tekshirmagan to'rt xil muammo. Ularni unit yaratgan tartibda o'qing, foydalanib journalctl -u openvpn-client@office -n 50 systemd hostida yoki menejer yo'q joyda mijozni old planda ishga tushirib. Old planda ishga tushirish profilning o'zi ishlashini tasdiqlashning eng tez yo'li hamdir.
Yozuvlaringizda ikki muhitni alohida saqlang: tunnelni ishga tushiradigan host va buyruqlarni teradigan joy.