Mae apt purge yn dweud bod y pecyn wedi mynd, ac eto mae twndl yn codi o hyd ar bob cychwyn. Mae'r journal yn tyfu, mae'r llwybrau'n dod yn ôl, ac mae'r peiriant yn ymddwyn fel pe na bai unrhyw beth wedi'i ddileu. Gall gosodwr y darparwr ysgrifennu ffeiliau na chofnododd rheolwr y pecynnau byth, felly mae dad-osod pecyn a dad-osod cynnyrch yn waith gwahanol. Mae'r runbook isod yn gwahanu'r ddau gofnod ac yn gorffen y dilead yn fwriadol.

Dau osodwr, dau gofnod gwahanol

Mae pecynnau Debian yn cadw rhestr ffeiliau, ac mae purge yn dileu'n union yr hyn a enwir yn y rhestr honno ynghyd â chyfluniad y pecyn. Nid yw gosodwr shell na bwndel .run yn cadw rhestr o'r fath; mae'n ysgrifennu lle myn, yn gyffredin yn /opt, /usr/local ac /etc/systemd/system. Nid yw'r un o'r llwybrau hynny'n ymddangos yn rhestr ffeiliau unrhyw becyn, felly nid yw dpkg yn gwybod amdanynt nac yn eu hadrodd. Rydych yn gorffen gyda dau berchennog gosodiad ar un system ffeiliau a dim ond un ohonynt yn cadw cyfrifon.

Gofynnwch i dpkg am y llwybr penodol cyn ei ddileu. Llwybr y mae'n ei wrthod sydd i chi ei ddileu, ac mae'r un ateb yn dweud wrthych a fyddai diweddariad diweddarach yn ei roi yn ôl.

dpkg -S /etc/systemd/system/acmevpn.service
systemctl list-unit-files | grep -i acmevpn

Mae unit a'i ddolen wants yn ffeiliau ar wahân

Mae galluogi yn weithred ar wahân i osod. Mae'r unit yn datgan perthynas targedau yn ei adran [Install], ac mae systemctl enable yn troi'r datganiadau hynny'n gysylltiadau symbolaidd yng nghyfeiriadur .wants/ pob targed. Bellach mae dau lwybr: ffeil yr unit, a'r ddolen sy'n ei thynnu i mewn i darged cychwyn. Dilewch y ffeil yn unig ac mae'r ddolen yn pwyntio at ddim, sy'n creu cwyn ar gychwyn; dilewch y ddolen yn unig ac mae'r unit yn parhau i fod yn gychwynadwy wrth ei enw. Rhaid i'r ddau fynd.

Tynnwch nhw yn eu trefn ac ail-lwythwch wedyn, fel bod systemd yn rhoi'r gorau i ddal yr hen ddiffiniadau yn y cof.

systemctl disable --now acmevpn.service
systemctl show -p FragmentPath -p ExecStart acmevpn.service
sudo rm /etc/systemd/system/acmevpn.service
sudo rm /etc/systemd/system/multi-user.target.wants/acmevpn.service
systemctl daemon-reload

Darllenwch FragmentPath yn lle tybio'r lleoliad, oherwydd efallai fod y darparwr wedi ysgrifennu i /usr/lib/systemd/system neu /lib/systemd/system yn hytrach nag /etc. Mae dileu'r copi roeddech yn ei ddisgwyl yn gadael yr un effeithiol yn rhedeg, ac mae'r cywiriad yn edrych yn llwyddiannus hyd nes yr ail-lwythiad nesaf. Rhestrwch ffeiliau'r unitau eto pan fydd yr ail-lwythiad wedi gorffen, a chadarnhewch nad yw'r enw yn ymddangos mwyach.

Dewch o hyd i'r deuaidd sy'n cadw'r trefniant yn fyw

Mae unit wedi'i alluogi yn dal i gychwyn y daemon beth bynnag y mae cronfa ddata'r pecynnau yn ei gredu. Gall y broses honno ddod â'r twndl yn ôl, ychwanegu llwybrau eto, neu adfer rheol kill-switch, ac mae'r ymddygiad yn edrych yn oruwchnaturiol hyd nes y byddwch yn archwilio'r cynllun. Dilynwch lwybr ExecStart a gwiriwch a yw'r deuaidd yn dal yno, oherwydd gweithredadwy a adawyd o dan /opt yw'r cyfan sydd ei angen ar y trefniant. Mae dileu'r unit yn atal y cychwyn a drefnwyd; nid yw'n dileu'r rhaglen.

Triniwch gyfeiriaduron cyflwr gyda'r un gofal. Mae tocynnau cyfrif, proffiliau a gynhyrchwyd a rhestrau gweinyddwyr sydd wedi'u cadw yn byw o dan /var/lib neu mewn cyfeiriadur cartref, ac mae'r rhain yn ddata cyfrifon yn hytrach na chache i'w daflu. Tynnwch nhw unwaith y bydd y gwasanaeth wedi stopio, yn fwriadol, a nodwch beth a gymeroch.

sudo ls -l /opt/acmevpn /usr/local/bin/acmevpn
sudo find /var/lib -maxdepth 2 -iname "*acme*"
systemctl is-enabled acmevpn.service

Dewiswch un perchennog cychwyn a'i brofi

Gall tri ymgeisydd hawlio'r cychwyn, ac mae gosod y tri yn creu ras yn hytrach na dwbl sicrwydd. Mae ffeil hunan-gychwyn bwrdd gwaith yn rhedeg yn unig ar ôl i rywun fewngofnodi, mae unit systemd yn rhedeg yn gynt ond mae angen cleient sy'n gweithio heb sgrin, ac mae cofnod cron @reboot yn tanio ar amserlen a allai fod yn anghywir ar gyfer cleient rhwydwaith. Efallai y bydd CLI'r darparwr yn gofyn am ddadl gweinydd hefyd, oherwydd ar gychwyn nid oes sesiwn flaenorol i'w hailddechrau. Dewiswch yr ymgeisydd sy'n cyd-fynd â'r ffordd y mae'r cleient yn dilysu, a gollyngwch y lleill.

Profwch ef trwy ailgychwyn y peiriant ac edrych ar dri ffaith annibynnol: cyflwr yr unit, rhestr y prosesau, a chysylltiad newydd i rywbeth y gallwch ei wirio. Mae cleient sydd angen cadwyn allweddi neu fewngofnod rhyngweithiol yn methu ar gychwyn hyd yn oed gyda ffeil unit gywir, ac mae'r journal yn dweud hynny os ydych yn ei ddarllen yn hytrach na dim ond statws y gwasanaeth.

Naill ai rhoddwch ddata cyfrifon i'r cleient sy'n gweithio heb anogwr, neu cychwynnwch ef ar fewngofnodi yn lle hynny. Mae'r ddau yn amddiffynadwy, a chyfuno'r ddau yw sut mae un twndl yn cael dau berchennog sy'n ymladd drosto.

Ysgrifennwch beth y dylai'r purge nesaf ei ddisgwyl

Nodwch ddwy ffaith ar ôl unrhyw ddilead â llaw: pa osodwr a greodd y trefniant, a pha berchennog sy'n ei gychwyn nawr. Mae'r nodyn hwnnw'n troi'r purge nesaf o syndod yn eitem ar restr wirio, ac mae'n byw yn hwy na'r person a wnaeth y gwaith.

Cadwch ef wrth gyfluniad y gwasanaeth yn hytrach nag mewn cyfeiriadur personol, a rhowch ddyddiad iddo, oherwydd gall diweddariad y darparwr adfer unit a ddilewyd gennych. Mae cymharu systemctl list-unit-files â'r nodyn hwnnw bob ychydig fisoedd yn dal yr adferiad tra mae'n dal yn rhad i'w drwsio.

Erthyglau cysylltiedig