systemd stöðvar VPN-þjónustuna: stilltu Type= eftir biðlaranum
VPN-eining við ræsingu verður óvirk þegar Type= passar ekki við líftíma biðlarans. Stilltu gerðina, lagaðu eignarhaldið og raðaðu þjónustunni á eftir göngunni.
Einingar geta litið rétt út, systemctl start getur tilkynnt árangur og tíu sekúndum síðar stendur þjónustan óvirk. Eða hún endurræsist á hálfs mínútu fresti þar til ræsingartakmörkin stöðva hana. Hvorug hegðunin er netbilun: einingin lýsir líftíma ferlis sem passar ekki við það sem biðlarinn gerir í raun. Biðlarinn getur fork-að og hætt, eða stillt setuna og hætt samstundis.
Hvers vegna einingin verður óvirk sekúndum eftir árangursríka ræsingu
systemd ályktar stöðuna af ferlinu sem það ræsti, svo Type= er fullyrðing um það ferli, ekki skjöl. Með Type=simple telst einingin virk á meðan skipunin keyrir og verður óvirk þegar hún snýr aftur. Biðlari sem afhendir tenginguna til hjálparforrits og hættir lítur því út eins og hrun, jafnvel þótt göngin séu uppi. Dagbókin sýnir þá ræsingu og stöðvun sem lesst eins og gallað forrit.
Lestu gerð einingarinnar við hlið hegðunar biðlarans áður en þú snertir netstillingarnar.
Veldu þá gerð sem passar við biðlarann
Tvö mynstur ná yfir flest CLI framleiðenda: skipun sem stillir setu og hættir, og skipun sem fork-ar hjálparforrit áður en hún snýr aftur. Hvort um sig þarf aðra einingamynd.
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnectoneshot með RemainAfterExit=true heldur einingunni virkri eftir að skipunin snýr aftur, sem passar við mynstrið stilla-og-hætta, og stöðvunarskipunin gefur þjónustunni hreina lokun. Fork-andi biðlari heldur sömu mynd en þarf Type=forking svo systemd fylgi barninu. Stilltu Restart=on-failure, RestartSec=30 og endanlegt StartLimitBurst, svo bilun hjá veitandanum geti ekki orðið að endurræsingarlykkju sem grefur villuna.
Leyfðu aldrei eftirlitsskyldum biðlara að dæmoniserast
Eftirlitsaðilar utan systemd rekast á sama vegg. runit-keyrsluskript sem ræsir dæmoniseraðan biðlara snýr strax aftur til eftirlitsaðilans, sem les afturkvömunna sem hrun og ræsir aðra eintak. Sérhver eftirlitsaðili gerir ráð fyrir að eiga forgrunnsferlið, eins og sshd -D verður frammi. Fjarlægðu dæmonfánann af eftirlitsskyldum skipunum og láttu eftirlitsaðilann sjá um bakgrunninn. Umbúðarskript sem snúa aftur áður en göngin eru til valda sömu ruglingi.
Ferli sem losar sig frá sjálfu sér er ósýnilegt öllu sem átti að fylgjast með því.
Setan endar og tekur göngin með sér
Skjáborðsseta á biðlarann sem hún ræsir. Ljúktu innskráningu og setubusin hverfur og tekur göngin með sér, sem skýrir hvers vegna tenging grafísks biðlara dettur oft út þegar síðasta glugganum er lokað. Netþjónar ættu að nota kerfiseiningu eða NetworkManager-snið sem kemur upp af sjálfu sér. Notendaeining hefur aðeins merkingu þegar göngin eiga að enda með innskráningunni, svo bundu hana við mark grafísku setunnar og segðu það í lýsingunni.
Notandi þjónustunnar er hinn helmingur sama vanda. Lykill í eigu root með ham 0600 er ólæsilegur fyrir einingu sem keyrir undir öðrum reikningi, hvað sem sudo náði í skelinni þinni.
systemctl cat openvpn-server@work
sudo chown -R openvpn:network /etc/openvpn/server
sudo find /etc/openvpn -type f -perm /077 -lsRaðaðu háðum eftir að vistfangið er til
Þegar dæmon bindur sig við gönguvistfang sem hefur ekki verið búið til hættir það með Cannot assign requested address. Viðgerðin er skýr röðun, ekki lykkja endurtekinna tilrauna.
[Unit]
After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.deviceAfter= raðar verkin, en Requires= á tækiseiningunni bindur hið háða við tilvist viðmótsins, sem er sterkara en að bíða eingöngu eftir netmarkinu. Endurhlaðaðu stjórnandann eftir breytingu og endurræstu háðu þjónustuna, lestu síðan dagbók hennar í stað þess að gera ráð fyrir að röðin hafi gengið. Sendu úttak biðlarans í dagbókina með StandardOutput=journal eða valkosti um skráningu, því eftirlitsskyldur biðlari sem skrifar í skrá sem enginn opnar lítur nákvæmlega eins út og sá sem hófst aldrei.
Endurræstu svo einu sinni og staðfestu að einingin sé virk eftir að göngutækið birtist. Viðgerð sem var aðeins staðfest með systemctl start hefur ekki prófað ræsingarröðina sem hún átti að laga.