Ажил нэвтрэх үед ажиллаж, лог клиентийн эхлэлийг харуулдаг ч туннель хэзээ ч босдоггүй. Эсвэл босоод хэдхэн секундын дараа алга болдог. Хоёр тохиолдолд шинж чанарын жагсаалт магадгүй зөв байсан. launchd ажлыг хүлээн авахдаа хоёр амлалт өгсөн: энэ нь процессыйг хянана, тэр процесс үргэлжлүүлэн ажиллана. VPN-д хоёулаа хэрэгтэй бөгөөд зөв XML файл аль нэгийг нь ч өгдөггүй.

Хүчинтэй шинж чанарын жагсаалт бол ажиллаж буй үйлчилгээ биш

plutil -lint бүтцийг шалгадаг. Энэ нь бинарын файл байгаа эсэх, аргументуудыг клиентийн энэ хувилбар дэмждэг эсэх, эсвэл ажил итгэмжлэл боломжтой нөхцөлд эхэлж байгаа эсэхийг хэлж чадахгүй. Эдгээр нь утга зүйн асуулт бөгөөд launchd-ийн асуудал мэт харагдах ихэнх алдааг эдгээр тайлбарладаг.

plutil -lint /Library/LaunchDaemons/com.example.vpn.plist
launchctl print system/com.example.vpn

Ажил ачаалагдсан гэж таамаглахын оронд хоёр дахь командын гаралтыг уншина уу. Энэ нь сүүлийн гаралтын төлөв болон үйлчилгээ ажиллаж байгаа эсэхийг мэдээлдэг бөгөөд профайлд хүрэхээс өмнө «хэзээ ч эхлээгүй» ба «эхэлсэн боловч үхсэн» гэдгийг ялгадаг.

Агентууд хэрэглэгчийн сессийг өвлөдөг, демонууд өвлөдөггүй

Apple-ийн launchd баримт бичиг хэрэглэгч тус бүрийн агентуудыг системийн демонуудаас ялгадаг. Агент нэвтэрсэн хэрэглэгчийн нөхцөлд, тэр хэрэглэгчийн түлхүүрийн багц болон орчинтойгоо ажилладаг. Демон тэр сессгүйгээр ажилладаг бөгөөд ажлыг системийн хавтас руу зөөх нь хэрэглэгчийн интерактив итгэмжлэлийг дахин үүсгэдэггүй.

Дизайныг яг энэ ялгаа шийддэг. Хэрэв холболт хүн нэвтрэх эсвэл MFA хүсэлтийг зөвшөөрөхийг шаарддаг бол дэмжигдсэн зохицуулалт нь нэвтэрсний дараа ажилладаг хэрэглэгчийн сессийн ажил. Хэрэв хэн ч нэвтрээгүй үед ажиллах ёстой бол клиентэд өөрийн шинэчлэх, хүчингүй болгох процесстой зөвшөөрөгдсөн хяналтгүй таних тэмдэг хэрэгтэй. Буруу мөрийг сонгох нь цэвэрхэн эхэлж, эхний баталгаажуулалтын шатанд бүтэлгүйтдэг ажлыг үүсгэдэг.

Энэ ялгааг аргументийн массив дахь нууц үгээр эсвэл гэрчилгээний шалгалтыг унтрааж бүү далдлаарай. Хоёулаа баталгаажуулалтын шаардлагыг уншиж болох файл дахь байнгын нууц болгоно, хоёр дахь нь туннель хариу үйлдэл үзүүлсэн бүхнийг баталгаажуулна гэсэн үг.

Хяналт нь процесс урд талд үлдсэн тохиолдолд л ажиллана

Өөрөө демон болдог клиент удирдлагыг шууд launchd-д буцааж өгдөг, дараа нь хянагч аль хэдийн дууссан процессыйг ажиглана. Туннель боссон байж болно, гэхдээ launchd ажил бүтэлгүйтсэн гэж үзэж, түүний дахин эхлүүлэх бодлого таны санаагүй зүйлийг хийнэ.

Клиентийн баримтжуулсан урд талын эсвэл үйлчилгээний горимыг ашиглана уу. Хэрэв бүтээгдэхүүн өөрийн дэмжигдсэн эхлүүлэх функцийг эзэмшдэг бол тэр функц нь урд талд хэрхэн үлдэх, сүлжээний стек рүү хэрхэн шилжүүлэхийг аль хэдийн мэддэг; захиалгат ажил бол тусдаа дизайн, түүний сайжруулалт биш.

Ажилд өвөрмөц шошго, зориулсан гүйцэтгэх файл, санаатай аргументийн массив өгнө үү. Массив нь shell-ийн командын мөр биш тул хоолой болон дахин чиглүүлэлт тэнд ажиллахгүй, хашилтын зан төлөв өөр байна. Администраторын терминалд амжилттай болдог команд нь хамгийн сайндаа урьдчилсан шалгалт юм.

Итгэмжлэл нь хүсэлтгүйгээр ажиллах ёстой

Хяналтгүй ажиллагаа итгэмжлэлийн асуудлыг арилгахын оронд зөөдөг. Хэн нэгэн таних тэмдгийг эзэмшиж, хэр удаан амьдрахыг шийдэж, хэрхэн солигддогийг баримтжуулах ёстой. Хугацааны хяналтгүй гэрчилгээ нь хуанли дээр огноотой тасалдал болдог.

Нууцыг аргументууд болон ажлын стандарт гаралтаас гадуур байлгаарай. Хэрэв клиент хамгаалагдсан сангаас итгэмжлэл уншихыг дэмждэг бол тэр замыг ашиглаж, ажлын гүйцэтгэлийн нөхцөл санд хүрч чадах эсэхийг шалгаарай. root-оор ажилладаг демон ихэвчлэн нэвтрэх түлхүүрийн багцын зүйлийг уншиж чаддаггүй бөгөөд энэ нь зөвхөн системийн нөхцөлд илэрдэг нарийн ширийн зүйл юм.

Бэлэн гэдэг нь юу гэсэн үг болохыг тодорхойлж, тэнд шалгаарай

Амжилттай эхлэл нь процесс эхэлснийг нотолдог. Энэ нь сүлжээ боссон, гарц таних тэмдгийг хүлээн авсан, эсвэл хувийн апп хүрэх боломжтой гэдгийг нотолдоггүй. Хэрэв өөр зүйл туннелээс хамаардаг бол түүнд ажлын эхлэх цаг биш, холболтыг илэрхийлсэн бэлэн байдлын дохио хэрэгтэй.

Дахин оролдлогууд хязгаарлагдмал байх ёстой бөгөөд сүлжээ байхгүй байгаа болон татгалзсан итгэмжлэлийг ялгах ёстой. Алдаа бүрт дахин эхлүүлэх нь хугацаа дууссан гэрчилгээг засахгүй бөгөөд жинхэнийг нуудаг ижил оролдлогоор дүүрэн лог үүсгэдэг.

Ажлыг тэр үнэхээр ажиллах нөхцөлд хүлээн авна уу: ачаалах үед сүлжээгүй, хэвийн нэвтрэлт, унтаанаас сэрэх, хяналттай зогсолт. Дараа нь ажлын шошго, клиентийн хувилбар, профайлын засварыг хамт тэмдэглэж, дараагийн хүн нэгэн цагт ажиллаж байсан файлыг биш, харин хамааруулж болох үйлчилгээг өвлөн авах болно.

Холбоотой нийтлэлүүд