VPN Mac wrth gychwyn: launchd sy’n goruchwylio’r dasg, nid y twnnel
Nid yw plist glân yn profi dim am gymwysiadau na pharodrwydd. Cyfatebwch y dasg i’w sesiwn, cadwch y cleient yn y blaendir, a phrofwch yn y cyd-destun hwnnw.
Mae’r dasg yn rhedeg wrth fewngofnodi, mae’r log yn dangos y cleient yn cychwyn, ac nid yw’r twnnel byth yn codi. Neu mae’n codi ac yn diflannu ychydig eiliadau’n ddiweddarach. Yn y ddau achos roedd y rhestr briodweddau yn iawn, yn ôl pob tebyg. Gwnaeth launchd ddau addewid pan dderbyniodd y dasg: bydd yn goruchwylio proses, a bydd y broses honno’n parhau i redeg. Mae ar y VPN angen y ddau, ac nid yw ffeil XML gywir yn darparu’r naill na’r llall.
Nid yw rhestr briodweddau ddilys yn wasanaeth sy’n gweithio
plutil -lint yn gwirio’r strwythur. Ni all ddweud wrthych a yw’r deuaidd yn bodoli, a yw’r dadleuon yn cael eu cefnogi gan y fersiwn cleient hwn, neu a yw’r dasg yn cychwyn mewn cyd-destun lle mae’r cymwysiadau ar gael. Cwestiynau semantig yw’r rhain, ac maent yn esbonio’r rhan fwyaf o’r methiannau sy’n edrych fel problemau launchd.
plutil -lint /Library/LaunchDaemons/com.example.vpn.plist
launchctl print system/com.example.vpn
Darllenwch allbwn yr ail orchymyn yn lle tybio bod y dasg wedi llwytho. Mae’n adrodd y statws gadael diwethaf ac a yw’r gwasanaeth yn rhedeg, sy’n gwahaniaethu “ni chychwynnodd erioed” oddi wrth “cychwynnodd a marw” cyn i chi gyffwrdd â’r proffil.
Mae asiantau’n etifeddu sesiwn defnyddiwr, nid yw daemoniaid
Mae dogfennaeth launchd Apple yn gwahanu asiantau fesul defnyddiwr oddi wrth daemoniaid system. Mae asiant yn rhedeg yng nghyd-destun y defnyddiwr sydd wedi mewngofnodi, gyda’i gylch allweddi a’i amgylchedd. Mae daemon yn rhedeg heb y sesiwn honno, ac nid yw symud tasg i gyfeiriadur system yn ail-greu cymwysiadau rhyngweithiol y defnyddiwr.
Mae’r gwahaniaeth hwnnw’n penderfynu’r dyluniad. Os oes angen i berson fewngofnodi neu gymeradwyo anogwr MFA, y drefniant a gefnogir yw tasg sesiwn defnyddiwr sy’n rhedeg ar ôl mewngofnodi. Os oes rhaid iddi weithio heb unrhyw un wedi mewngofnodi, mae ar y cleient angen hunaniaeth heb oruchwyliaeth wedi’i chymeradwyo, gyda’i phroses adnewyddu a dirymu ei hun. Mae dewis y rhes anghywir yn cynhyrchu tasg sy’n cychwyn yn lân ac yn methu ar y cam dilysu cyntaf.
Peidiwch â gorchuddio’r gwahaniaeth â chyfrinair yn y casgliad dadleuon nac wrth analluogi gwiriadau tystysgrif. Mae’r ddau yn troi gofyniad dilysu yn gyfrinach barhaol mewn ffeil y gellir ei darllen, ac mae’r ail yn golygu bod y twnnel yn dilysu unrhyw beth sy’n ateb.
Nid yw goruchwyliaeth yn gweithio oni bai bod y broses yn aros o flaen
Mae cleient sy’n troi ei hun yn daemon yn dychwelyd rheolaeth i launchd ar unwaith, ac yna mae’r goruchwyliwr yn gwylio proses sydd eisoes wedi gadael. Gall y twnnel fod i fyny, ond mae launchd yn credu bod y dasg wedi methu, a bydd ei bolisi ailgychwyn yn gwneud rhywbeth na fwriadwyd gennych.
Defnyddiwch y modd blaendir neu wasanaeth sydd wedi’i ddogfennu gan y cleient. Os oes gan y cynnyrch nodwedd cychwyn cefnogol ei hun, mae’r nodwedd honno eisoes yn gwybod sut i aros yn y blaendir a sut i drosglwyddo i’r pentwr rhwydwaith; mae tasg wedi’i chyfaddasu yn ddyluniad ar wahân, nid yn welliant ar hynny.
Rhowch label unigryw i’r dasg, y gweithredadwy a fwriadwyd, a chasgliad dadleuon bwriadol. Nid yw casgliad yn llinell orchymyn shell, felly nid yw pibellau ac ailgyfeiriadau yn gweithio yno, ac mae dyfynbris yn ymddwyn yn wahanol. Ar ei orau, mae gorchymyn sy’n llwyddo yn nherfynell gweinyddwr yn wiriad rhagarweiniol.
Rhaid i gymwysiadau weithio heb anogwr
Mae gweithredu heb oruchwyliaeth yn symud y broblem gymwysiadau yn hytrach na’i dileu. Rhaid i rywun feddu ar yr hunaniaeth, penderfynu pa mor hir y mae’n byw, a dogfennu sut y caiff ei disodli. Mae tystysgrif heb fonitro dyddiad dod i ben yn troi’n fethiant gyda dyddiad ar y calendr.
Cadwch gyfrinachau allan o’r dadleuon ac allan o allbwn safonol y dasg. Os yw’r cleient yn cefnogi darllen cymhwysiad o storfa warchodedig, defnyddiwch y llwybr hwnnw, a gwiriwch fod cyd-destun gweithredu’r dasg yn gallu cyrraedd y storfa. Yn aml ni all daemon sy’n rhedeg fel root ddarllen eitem cylch allweddi mewngofnodi, a dyna’r math o fanylion sy’n ymddangos yn unig yng nghyd-destun y system.
Diffiniwch beth yw parodrwydd, yna profwch ef yno
Mae lansiad llwyddiannus yn profi bod y broses wedi cychwyn. Nid yw’n profi bod y rhwydwaith i fyny, bod y porth wedi derbyn yr hunaniaeth, na bod modd cyrraedd y cymhwysiad preifat. Os oes rhywbeth arall yn dibynnu ar y twnnel, mae angen signal parodrwydd arno sy’n adlewyrchu’r cysylltiad, nid amser cychwyn y dasg.
Dylai ailgeisiadau fod yn gyfyngedig ac yn gwahaniaethu rhwydwaith ar goll oddi wrth gymhwysiad a wrthodwyd. Ni all ail-lansio ar bob methiant atgyweirio tystysgrif sydd wedi dod i ben, ac mae’n cynhyrchu log yn llawn ymdrechion unfath sy’n cuddio’r un go iawn.
Derbyniwch y dasg yn y cyd-destun y bydd yn rhedeg ynddo mewn gwirionedd: dim rhwydwaith wrth gychwyn, mewngofnodi arferol, deffro o gwsg, a stop rheoledig. Yna cofnodwch label y dasg, fersiwn y cleient a diwygiad y proffil gyda’i gilydd, fel bod y person nesaf yn etifeddu gwasanaeth y gellir ei briodoli yn lle ffeil a weithiodd unwaith.