VPNsiz ishlagan rejalashtirilgan vazifa yaxshi ko'rinadi
Holat muvaffaqiyat deydi, ma'lumot esa yo'q. Har bir ishga tushishni aniq ulanishga bog'lang va jadvalga ishonish o'rniga o'tkazib yuborishlarni alohida yozib boring.
Vazifa holati muvaffaqiyat deydi, jurnal tugallangan ishga tushishni ko'rsatadi, ma'lumot esa eskirgan yoki yo'q. Bu birikma odatda rejalashtirilgan vazifa kerakli yo'lsiz boshlanganini va quyida nimadir muvaffaqiyatsizlikni yutib yuborganini bildiradi. Vaqtida ishga tushadigan jadval tarmoq tayyor bo'lgani haqida hech narsa demaydi. Aynan shu ikki fakt orasidagi bo'shliq bu muvaffaqiyatsizlik yashaydigan joydir.
Ruxsat ishga tushishga tegishli, cron faylining mavjudligiga emas.
Yashil ishga tushish tugallangan vazifa emas
Rejalashtiruvchi jarayon boshlanganini va keyin chiqqanini qayd etadi; u bu jarayon o'zi uchun mavjud bo'lgan resursga yetganini bilmaydi. Muvaffaqiyatsiz ulanishni bo'sh natija deb qabul qiladigan yoki xatoni ushlab, nol bilan chiqadigan skript abadiy sog'lom ko'rinadi. Alomat qizil holat emas; bu yo'q ishga bog'langan ishonchli holat.
Uni qanday tekshirishni hal qilishdan oldin ishga tushishga aslida nima kerakligini nomlang. Zaxira nusxaga xususiy DNS va autentifikatsiya qilingan so'nggi nuqta kerak bo'lishi mumkin, faqat tunnel jarayoni emas.
Ulanishni tekshiring, interfeys nomini emas
tun0 nomli interfeys muhim sessiyasiz mavjud bo'lishi mumkin, boshqa ulanish esa bu nomga ega bo'lishi mumkin. Vazifa bog'liq bo'lgan aniq ob'ektni tekshiring: bitta profil identifikatori, bitta xizmat nusxasi yoki resursga qarshi kichik tasdiqlangan operatsiya. Tekshiruvni vaqt bilan cheklab turing, hisob ma'lumotlarini jarayon argumentlari va diagnostika jurnallaridan tashqarida saqlang.
Uzilish natijasini ham aniqlang. Oddiy o'tkazib yuborish, qisqa oyna ichida qayta urinish va operatorga ko'rinadigan o'tkazib yuborilgan muddat uch xil javobdir va takrorlanuvchi jadval ular orasida tanlamaydi.
O'tkazib yuborishlar va muvaffaqiyatsizliklar turli natijalardir
[Service] Type=oneshot User=worker ExecCondition=/usr/local/libexec/check-office-path ExecStart=/usr/local/bin/private-task
systemd joylashtiruvida ExecCondition= ish yukidan oldin o'sha tekshiruvchini ishga tushiradi. Uning chiqish xatti-harakati o'ziga xos: nol davom etadi, birdan 254 gacha kodlar birlikni muvaffaqiyatsiz deb belgilamasdan qolgan ishga tushirish buyruqlarini o'tkazib yuboradi, 255 yoki g'ayritabiiy tugash esa uni muvaffaqiyatsiz qiladi. Bu uch xil signal beradi, ular faqat tekshiruvchi shartnomasi ataylab ularga moslashtirilganda foydali. Muvaffaqiyatni qayta belgilovchi sozlamalar manzarani o'zgartirishi mumkin, shuning uchun moslashtirishni hujjatlashtiring.
O'tkazib yuborishlarni qayd etish dizaynni halol qiladigan narsadir. Hech qayerda ko'rinmaydigan o'tkazib yuborilgan ishga tushish muvaffaqiyatli bo'lgan ishga tushishdan ajratib bo'lmaydi, har bir tekshiruvchi xatosini sokin o'tkazib yuborish deb qabul qilish esa buzilgan joylashtirishni cheksiz yashiradi.
Butun ishga tushishni qo'riqlang, faqat boshlanishini emas
Tayyorlik tekshiruvi ishga tushirishdan oldin dunyoni kuzatadi; keyin har bir soketni nazorat qilmaydi. Agar bu vazifa uchun to'g'ridan-to'g'ri yo'l hech qachon maqbul bo'lmasa, DNS, IPv6 va tunnelning o'z transportini qamrab oluvchi, doimiy qo'llaniladigan tasdiqlangan chiqish siyosatini biriktiring. Xostning global IPv6 holatini almashtirish vazifaga cheklangan siyosat o'rnini bosmaydi.
Yangi hodisa hali ishlab turgan vazifani qoplashi mumkinmi, buni hal qiling, bu qoidani ish yuki egasida saqlang va ma'lumot operatsiyasi uchun qayta urinishni xavfsiz qiling. Uzilishda vazifani to'xtatish ishni cheklaydi, lekin zaxira trafigi haqida hech narsani kafolatlamaydi.
Ish oqimini uch holatda qabul qiling: tayyor yo'l, mavjud bo'lmagan yo'l va ishga tushish o'rtasidagi yo'qotish. Bundan kamrog'i jadvalni sinovdan o'tkazadi, vazifani emas.