Статусот на задачата вели успех, дневникот покажува завршено извршување, а податоците се стари или отсутни. Оваа комбинација обично значи дека планираната задача започнала без патеката што ѝ требала, и нешто подолу по текот ја проголтало грешката. Распоредот што се активира навреме не кажува ништо за тоа дали мрежата била подготвена. Токму јазот меѓу овие два факти е местото каде живее оваа грешка.

Допуштеноста ѝ припаѓа на извршувањето, не на постоењето на cron-датотека.

Зелено извршување не е завршена задача

Планирачот забележува дека процесот започнал и подоцна излегол; тој нема поим дали тој процес стигнал до ресурсот за кој постои. Скрипта што неуспешно поврзување го третира како празен резултат, или фаќа грешка и излегува со нула, засекогаш ќе изгледа здрава. Симптомот не е црвен статус; тоа е веродостоен статус прикачен на работа што недостига.

Именувајте што на извршувањето навистина му треба пред да одлучите како да го проверите. Резервната копија може да бара приватен DNS и автентифицирана крајна точка, а не само тунелски процес.

Проверете го поврзувањето, не името на интерфејсот

Интерфејс со име tun0 може да постои без важната сесија, а друга врска може да го поседува тоа име. Проверете го конкретниот објект од кој зависи задачата: еден идентитет на профил, една инстанца на услуга или мала одобрена операција против ресурсот. Проверката држете ја временски ограничена, а акредитивите држете ги надвор од аргументите на процесот и дијагностичките дневници.

Дефинирајте го и исходот при исклучување. Обично прескокнување, повторен обид во краток прозорец и рок што го пропуштил операторот се три различни одговори, а распоредот што се повторува не избира меѓу нив.

Прескокнувањата и грешките се различни исходи

[Service]
Type=oneshot
User=worker
ExecCondition=/usr/local/libexec/check-office-path
ExecStart=/usr/local/bin/private-task

Во распоредување со systemd, ExecCondition= го извршува тој проверувач пред работното оптоварување. Неговото однесување при излез е специфично: нулата продолжува, кодовите од еден до 254 ги прескокнуваат останатите наредби за стартување без да ја означат единицата како неуспешна, а 255 или ненормално прекинување ја прават неуспешна. Тоа дава три различни сигнали, корисни само ако договорот на проверувачот намерно е пресликан на нив. Поставките што успехот го редефинираат можат да ја сменат сликата, затоа документирајте го пресликувањето.

Токму запишувањето на прескокнувањата го прави дизајнот чесен. Прескокнато извршување што никаде не се појавува не се разликува од извршување што успеало, а третирањето на секоја грешка на проверувачот како тивко прескокнување неограничено крие расипано распоредување.

Заштитете го целото извршување, не само почетокот

Проверката за подготвеност го набљудува светот пред лансирањето; таа потоа не го надгледува секој сокет. Кога директен пат никогаш не е прифатлив за оваа задача, прикачете одобрена излезна политика што се спроведува постојано и ги покрива DNS, IPv6 и сопствениот транспорт на тунелот. Префрлањето на глобалната состојба на IPv6 на домаќинот не е замена за политика ограничена на задачата.

Одлучете дали нов настан може да се преклопи со задача што сѐ уште работи, чувајте го тоа правило кај сопственикот на работното оптоварување и направете повторениот обид безбеден за операцијата со податоци. Запирањето на задача при исклучување го ограничува работата без да гарантира ништо за резервниот сообраќај.

Прифатете го работниот тек во три случаи: подготвена патека, недостапна патека и загуба за време на извршувањето. Сѐ помалку од тоа го проверува распоредот, а не задачата.

Поврзани статии