Хабарлама қосылғаннан жиырма минут өткен соң шықты. Оның астындағы санауыш алдыңғы таңнан, немесе тіркелгі соңғы рет аутентификацияланған уақыттан бері жүріп жатты, және ескертуде қайсысы екені айтылмады. Бұл — симптом: сіздің алдыңыздағы қосылымға емес, басқа нәрсеге байланған еске салғыш.

Түзету жақсырақ ескерту емес. Бұл талап қай сағатты меңзеп тұрғанын шешу, содан кейін таймерді сол сағатта бар нысанға байлау.

Не іске қосылды және ол нені санап жатты

Үш ықтимал дереккөз бірдей хабарлама береді. Күнтізбе ережесі белгіленген жергілікті уақытта жүреді және туннельдер туралы ештеңе білмейді. Клиенттегі санауыш кез келген қосылым тұрғанша жинақталады және қайта қосылулардан аман қалады. Шлюз саясаты сессияны сервер жағында аяқтайды және алдымен ескерту жібереді.

Соңғы екеуі ғана сессия туралы, және олар да келіспейді. Клиент санауышы жергілікті процесс байқағанды өлшейді; шлюз аутентификациялап, есепке алғанды өлшейді. Ұйқы, желінің ауысуы немесе бақылаушының қайта іске қосылуы оларды сағаттарға ажыратуы мүмкін, сондықтан ескерту мен мәжбүрлі мерзім бір-бірінен алыстайды.

Бір талаптың артындағы үш сағат

Шынымен қалайтын сөйлемді жазудан бастаңыз. Шлюз бұл қосылымды аяқтамай тұрып ескерту — бір күндік қосылған уақыттан кейін еске салумен бірдей талап емес. Бұл сессия 23 сағаттан бері тұр деп хабарлаумен де бірдей емес. Әр нұсқа басқа оқиғаны атайды, және оған басқа компонент жауап беруі керек.

Содан кейін деректердің бар-жоғын тексеріңіз. Жергілікті басталу уақыт белгісі серверге тәуелсіз сессия жасын береді. Шлюз саясаты қалған өмірді береді, бірақ шлюз оны ашқан жағдайда ғана. Пайдалану есебі уақыт ұзақтығын фактіден кейін береді, ал бұл алдын ала хабарламаны қозғалта алмайды.

Таймерді сессияға байлаңыз, тіркелгіге емес

Алдымен нысанды таңдаңыз. Тіркелгіде бірнеше құрылғы және бірнеше бір мезгілдегі сессия болуы мүмкін, сондықтан пайдаланушы атына байланған еске салғыш қай қосылым жасқа жеткенін айта алмайды. Оны профиль мен сол белсендіруге байлаңыз, ал белсендіру аяқталғанда күтіп тұрған хабарламаны жойыңыз.

Evidence you can readWhat it establishesWhere it misleads
Connection state changes to activeA session started nowDoes not carry the gateway's own session identifier
Duration reported at disconnectTotal service time for that sessionArrives too late for any advance notice
Interim usage updateTime accounted up to that updateStaleness equals the update interval
Local timestamp taken at activationAge of your observationResets whenever the observer restarts

Бұл кесте өз хабарлағышыңызға арналған шарт, кез келген клиенттің кері шақыру API сипаттамасы емес. Орнатылған өнім қосылым күйі туралы құжаттайтын нәрсенің бәрі — байлануға тиісті дереккөз; ол тек аутентификация оқиғаларын ашатын жерде мұны дауыстап айтыңыз және сессияны болжаудың орнына неғұрлым дөрекі мінез-құлықты қабылдаңыз.

Қысқа шекпен сынап көріңіз

Бір күндік таймерді бір күндік күтумен ешқашан жөндеуге тырыспаңыз. Конфигурацияланатын шек қосыңыз, оны отыз секундқа қойыңыз және кезекпен төрт ауысуды орындаңыз: қосылу, күту, ажырату, қайта қосылу. Әр ауысу дәл бір күй өзгерісін беруі керек, ал қайта қосылу ескі мерзімді мұра етудің орнына жаңа мерзімді белгілеуі керек.

# current connection state and profile identity
nmcli -f GENERAL.STATE,GENERAL.CONNECTION connection show work

# the notifier unit you wrote: does it restart the deadline or resume it?
journalctl --user -u vpn-timer.service --since "-5 min" -o cat

Сөзге емес, уақыт белгілеріне қараңыз. Алдыңғы сессияның басталу уақытымен келген хабарлама қате нысанға байланған, ал бір мерзімге екі рет келген хабарлама жіберілді деген жалаушаның ешқашан сақталмағанын білдіреді.

Ұйқы, қайта қосылу және жоғалған жеткізу

Ұйқы екі қарапайым жобаны да бұзады. Монотонды кері санақ машина ұйықтап жатқанда тоқтайды, қабырға сағаты бойынша мерзім қозғала береді, ал ұйқы кезінде іске қосылған таймер кеш немесе мүлде жеткізілмейді. Талабыңызға қай мінез-құлық керегін шешіңіз, содан кейін машинаны шектен асырып ұйықтатыңыз да, растаңыз.

Жеткізу де сол қамқорлыққа лайық. Егер хабарламаны көрсету мүмкін болмаса, оны кезекке қойыңыз және түпкілікті көрсетпес бұрын мақсатты сессияны әлі бар-жоғын қайта тексеріңіз; әйтпесе пайдаланушыға әлдеқашан аяқталған қосылым туралы ескертіледі. Мәжбүрлі ажырату және тіркелгі деректерін жаңарту бұл жолдан тыс қалады, өйткені қосылымның тағдырын үнсіз өзгертетін еске салғыш — хабарлама киімін киген саясат шешімі.

Қатысты мақалалар