Prekinite jedan OpenVPN GUI profil, a ne svaki tunel
Tunelom kojim upravlja GUI upravlja se GUI naredbom, a tunelom pod servisom upravlja se kontrolom servisa. Utvrdite koji program posjeduje profil prije nego što bilo šta skriptirate.
Skripta za prekid obično ne uspijeva iz jednog razloga: obraća se pogrešnom vlasniku. Tunel kojim upravlja zajednički OpenVPN GUI pripada sesiji tog GUI-ja, tunel koji pokrene Windows servis pripada servisu, a OpenVPN Connect ne pripada ni jednom od njih. Prođite kroz ove provjere po redu i zaustavite se kada vlasnik nije jasan. Slanje kill naredbe zato što je vlasnik bio nejasan jeste način na koji prekid jednog profila postaje ispad cijelog lokaliteta.
Za vezu kojom upravlja GUI, korisna naredba je poruka GUI-ju, a ne signal openvpn.exe.
Prvo utvrdite vlasnika
Pogledajte koji program zapravo prikazuje povezano stanje prije nego što išta napišete. Ikona u sistemskoj traci znači da ga posjeduje GUI sesija. Stavka servisa znači da ga posjeduje servis. Zaseban prozor aplikacije sa sopstvenom listom profila ne znači nijedno od toga, a na njega se primjenjuje njegov vlastiti interfejs specifičan za verziju.
Provjerite i račun te sesiju radne površine. Zakazani zadatak koji radi kao drugi korisnik ili u neinteraktivnoj sesiji ne treba smatrati kontrolorom GUI-ja koji prijavljena osoba vidi. To neslaganje daje naredbu koja završi čisto i ništa ne promijeni, a to je najskuplja vrsta kvara za traženje uzroka iz dnevnika.
Zatim pošaljite vlastiti prekid vlasnika
Kada je GUI instaliran na putanji iz primjera i postoji profil po imenu office, cijela naredba je jedan red:
"C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --command disconnect officeZamijenite svoju stvarnu putanju instalacije i tačan naziv konfiguracije, uključujući velika i mala slova kako ih GUI prikazuje. Dokumentacija naredbi projekta navodi podržane GUI kontrole, a ovaj primjer pripada samo OpenVPN GUI-ju — to nije naredba za svaku aplikaciju koja u imenu ima OpenVPN.
Za tunel koji posjeduje servis, ispravna kontrola je servis, a ne GUI izvršni fajl. Pregledajte instalirani servis i profile kojima upravlja prije nego što bilo šta zaustavite, jer zaustavljanje može srušiti nekoliko tunela odjednom i nećete dobiti rezultat po profilu.
Provjerite da ništa drugo ne pada
GUI dokumentuje i naredbu disconnect_all, a njen obim je upravo razlog zašto je pogrešan alat za skriptu koja treba zaustaviti samo office. Ako vas mami da je upotrijebite radi jednostavnosti, pitajte šta je još povezano na tom računaru i kako će korisnik to primijetiti.
taskkill /F /IM openvpn.exe je gori na dva načina. Bira procese po nazivu izvršnog fajla i nameće prisilno zaustavljanje, pa ne izražava ni naziv profila ni uobičajeni slijed prekida vlasnika. Nazvati to urednim gašenjem znači sakriti oba problema iza jednog izlaznog statusa.
Kojim god putem krenuli, provjerite obim uticaja prije promjene: izlistajte povezane profile, zabilježite koji treba da prežive i provjerite ih ponovo poslije.
Potvrdite stanje, a ne izlazni kod
Nakon što zatražite prekid, čitajte stanje navedene veze preko njenog vlasnika umjesto da vjerujete povratnoj vrijednosti naredbe. Ako sljedeći korak traži mrežu nakon rastavljanja, čekajte tu promjenu stanja sa eksplicitnim istekom vremena umjesto da pretpostavite da je čišćenje završilo kada se proces vratio. Skripta koja se trka s rastavljanjem povremeno će ne uspjeti, a krivica će pasti na VPN.
Ako se stanje nikada ne promijeni, vlasnik vjerovatno nije onaj kojem ste se obratili. Ponovo provjerite sesiju i račun prije nego što pređete na jaču naredbu.
Šta staviti u dnevnik
Zabilježite naziv profila, vlasnika kojem ste se obratili i kontekst pokretanja, plus rezultirajuće stanje. Ne sipajte punu konfiguraciju ni akreditive u dnevnik zadatka i ne bilježite komandnu liniju ako sadrži putanju do fajla s tajnama.
Poruka o grešci koja imenuje profil i kontekst dovoljna je da sljedeća osoba reprodukuje problem. Dnevnik koji bilježi samo opći izlazni kod šalje ih natrag na početak, a upravo tu nagađanje počinje iznova.