L-unitajiet jistgħu jidhru korretti, systemctl start jista' jirrapporta suċċess, u għaxar sekondi wara s-servizz jibqa' inattiv. Jew jerġa' jibda kull nofs minuta sakemm il-limitu tat-tnedija jwaqqfu. Ebda waħda miż-żewġ imġiba mhija ħsara tan-netwerk: l-unità tiddeskrivi tul ta' ħajja ta' proċess li ma jaqbilx ma' dak li l-klijent fil-fatt jagħmel. Il-klijent jista' jagħmel fork u joħroġ, jew jikkonfigura s-sessjoni u joħroġ minnufih.

Għaliex l-unità ssir inattiva sekondi wara tnedija b'suċċess

systemd jiddeduċi l-istat mill-proċess li tnieda hu, allura Type= hija dikjarazzjoni dwar dak il-proċess, mhux dokumentazzjoni. B'Type=simple l-unità tingħadd bħala attiva sakemm il-kmand ikun qed jaħdem u ssir inattiva meta jirritorna. Klijent li jgħaddi l-konnessjoni lil assistent u joħroġ għalhekk jidher bħal waqgħa, anki meta l-mina tkun qiegħda taħdem. Imbagħad il-ġurnal juri mudell ta' tnedija u waqfien li jinqara bħal binarju difettuż.

Aqra t-tip tal-unità ħdejn l-imġiba tal-klijent qabel ma tmiss il-konfigurazzjoni tan-netwerk.

Agħżel it-tip li jaqbel mal-klijent

Żewġ mudelli jkopru l-biċċa l-kbira tal-CLI tal-fornituri: kmand li jikkonfigura sessjoni u joħroġ, u kmand li jagħmel fork ta' assistent qabel ma jirritorna. Kull wieħed jeħtieġ forma ta' unità differenti.

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/protonvpn-cli connect -f
ExecStop=/usr/bin/protonvpn-cli disconnect

oneshot ma' RemainAfterExit=true iżomm l-unità attiva wara li l-kmand jirritorna, li jaqbel mal-mudell ikkonfigura u oħroġ, u l-kmand tal-waqfien jagħti lis-servizz għeluq nadif. Klijent li jagħmel fork iżomm l-istess forma iżda jeħtieġ Type=forking biex systemd isegwi t-tifel. Issettja Restart=on-failure, RestartSec=30 u StartLimitBurst finit, biex waqfa tal-fornitur ma ssirx ċiklu ta' tnedijiet mill-ġdid li jindifen l-iżball.

Qatt tħalli klijent taħt superviżjoni jsir demonju

Is-superviżuri barra minn systemd jaħbtu mal-istess ħajt. Skritt tat-tħaddim ta' runit li jniedi klijent demonizzat jirritorna minnufih lis-superviżur, li jaqra r-ritorn bħala waqgħa u jniedi kopja oħra. Kull superviżur jistenna li jkollu l-proċess tal-quddiem, bħalma sshd -D jibqa' quddiem. Neħħi l-bandiera tad-demonju għall-kmandi taħt superviżjoni u ħalli s-superviżur jagħmel ix-xogħol fl-isfond. Skritti tal-involukru li jirritornaw qabel ma teżisti l-mina jikkawżaw l-istess konfużjoni.

Proċess li jinqata' minnu nnifsu huwa inviżibbli għal kull ħaġa li kellha tħarsu.

Is-sessjoni tintemm u tieħu l-mina magħha

Sessjoni tad-desktop tippossjedi l-klijent li tniedi. Temm id-dħul u l-bus tas-sessjoni jisparixxi, u jieħu l-mina miegħu, li jispjega għaliex il-konnessjoni ta' klijent grafiku spiss taqa' meta tingħalaq l-aħħar tieqa. Is-servers għandhom jużaw unità tas-sistema jew profil NetworkManager li titla' waħedha. Unità tal-utent għandha sens biss meta l-mina għandha tintemm mad-dħul, allura orbtaha mal-mira tas-sessjoni grafika u ddikjaraha fid-deskrizzjoni tagħha.

L-utent tas-servizz huwa n-nofs l-ieħor tal-istess problema. Ċavetta proprjetà ta' root b'mod 0600 ma tinqarix minn unità li taħdem b'kont ieħor, x'ikun kiseb sudo fil-qoxra tiegħek.

systemctl cat openvpn-server@work
sudo chown -R openvpn:network /etc/openvpn/server
sudo find /etc/openvpn -type f -perm /077 -ls

Ordna dawk li jiddependu wara li l-indirizz ikun jeżisti

Meta demonju jorbot ma' indirizz tal-mina li għadu ma nħoloqx, joħroġ b'Cannot assign requested address. Is-sewwa huwa ordni espliċitu, mhux ċiklu ta' provi mill-ġdid.

[Unit]
After=network.target [email protected]
Requires=sys-devices-virtual-net-wg0.device

After= jordna x-xogħlijiet, filwaqt li Requires= fuq l-unità tal-apparat jorbot lil dak li jiddependi mal-eżistenza tal-interface, li huwa aqwa milli tistenna biss il-mira tan-netwerk. Erġa' għabbi l-maniġer wara l-editjar u erġa' ibda s-servizz dipendenti, imbagħad aqra l-ġurnal tiegħu minflok tassumi li l-ordni ħadmet. Ibgħat il-ħruġ tal-klijent fil-ġurnal b'StandardOutput=journal jew għażla ta' log, għax klijent taħt superviżjoni li jikteb f'fajl li ħadd ma jiftaħ jidher eżatt bħal wieħed li qatt ma beda.

Imbagħad erġa' ibda darba u kkonferma li l-unità hija attiva wara li jidher l-apparat tal-mina. Sewwa vverifikat biss b'systemctl start ma ppruvatx l-ordni tal-boot li kellu jsewwi.

Artikli relatati