Датотека PID постоји, тунела нема: да ли је OpenVPN икада радио?
Преостала датотека PID не говори ништа о томе да ли је тунел активан. Проверите услугу, време покретања процеса и уговор покретача пре него што је избришете.
Када покретач одбије да покрене OpenVPN зато што датотека PID већ постоји, природно читање је да негде ради тунел. То читање је довољно често погрешно да вреди проверити пре него што се било шта избрише. Датотека у директоријуму за извршавање је књиговодство, а књиговодство преживљава падове, рестартовања и прекинута гашења која нису оставила процес. Два питања решавају случај: да ли постоји жив процес и да ли тај процес припада овој инстанци.
Почните од услуге, не од датотеке
Одбијање обично долази од покретача, а не од самог OpenVPN-а. Он чита путању, налази нешто тамо и зауставља се пре него што се конфигурација анализира. Прво питање је зато о уговору покретача, а не о тунелу.
Прочитајте јединицу или скрипту која је исписала поруку и обратите пажњу на три ствари: путању коју проверава, тип услуге који декларише и да ли је уопште одговорна за писање датотеке. Савремена јединица може да користи једноставан или notify надзор и никада не дотакне датотеку PID, док старија init скрипта може сама да је створи. Копирање провере из једног модела у други производи управо овакво одбијање. Откријте који се модел користи пре него што било шта протумачите.
Тек тада питање постаје да ли инстанца заиста ради.
Проверите да ли тај идентификатор припада вашој инстанци
Број у датотеци доказује да је број записан. Он не доказује да процес са тим идентификатором постоји сада, и сигурно не доказује да је процес ваш, јер се идентификатори поново користе после рестартовања.
Упоредите време покретања процеса са временском ознаком датотеке, извршну датотеку са командом јединице и чланство у услузи са именом јединице. Неслагање у било ком од три значи да гледате књиговодство, а не тунел.
На домаћину који извршава контејнере или више именских простора идентификатор може имати смисла у једном приказу, а изостати у другом. То што не видите процес такође није доказ да не постоји, ако ваш налог не може да га провери. Проверавајте из контекста који користи покретач пре него што донесете закључке.
systemctl status [email protected]
ps -o pid,lstart,args -p "$(cat /run/openvpn/vpn.pid)"Шта је покретач обећао да ће урадити са датотеком
PIDFile= каже менаџеру услуга одакле да чита идентификатор главног процеса. Менаџер не пише ту датотеку, али уклања ону која је остала после гашења, и управо зато прекинути излаз може да остави датотеку.
Ова подела одговорности објашњава два симптома која људи пријављују као грешке. Датотека која се никада не појави значи да демон или његова скрипта нису успели да је запишу, а не да је надзор погрешно конфигурисан. Датотека која преживи заустављање значи да пут гашења никада није завршен.
То такође објашњава зашто тренутне смернице предлажу да се избегне конвенција када надзор може директно да прати главни процес. Те смернице нису дозвола да се мења тип спаковане јединице, јер понашање демона у предњем плану, при гранању или при обавештењу мора да одговара ономе што јединица декларише. Промените тип без промене демона и добићете јединицу која пријављује неуспех док тунел ради, или обрнуто. Ускладите пар или оставите оба. Референца услуге systemd описује поделу власништва.
Чисто гашење наспрам прекинутог излаза
Чисто заустављање тражи од демона да изађе, чека га и дозвољава менаџеру да среди сопствено књиговодство. Прекинути излаз, убијен процес или рестартовање усред гашења прескачу делове тог следа, и датотека је оно што остаје. Проналажење једне после пада говори да гашење није завршено, а не да нешто слуша.
Упоредите временску ознаку датотеке са последњим подизањем и са последњим заустављањем јединице.
Затим директно проверите живе доказе. Сокет везан за порт VPN-а и мрежни интерфејс тунела са адресом доказ су да нешто ради, на начин на који текстуална датотека у директоријуму за извршавање никада није. Ако обоје недостаје, ништа не ради, шта год датотека тврди.
Престаните да бришете датотеку из навике
Њено брисање је легитиман корак опоравка након што утврдите да је ниједна инстанца не поседује и да покретач документује ово понашање.
Као стална навика пре покретања, оно поништава проверу коју заобилазите. Ако се застареле датотеке враћају после сваког чистог заустављања, писац и животни циклус гашења не слажу се око тога коме припада путања, и то неслагање је грешка коју вреди поправити.
Одржавајте независан начин уласка у домаћина, покрените једну инстанцу преко њеног нормалног менаџера и прочитајте први резултат. Следећа особа добија јединицу која или ради или се објашњава.