apt purge iliondoa VPN, lakini huduma bado huanza wakati wa boot
apt purge hufuta faili za kifurushi, si unit iliyowekwa na script ya msambazaji. Futa unit na kiungo chake cha wants, kisha chagua mmiliki mmoja wa boot.
apt purge inasema kifurushi kimeondoka, lakini handaki bado inaibuka kila mwanzo. Journal inaendelea kukua, njia zinarudi, na mashine inafanya kana kwamba hakuna kilichoondolewa. Kisanidi cha msambazaji kinaweza kuandika faili ambazo meneja wa vifurushi hakuwahi kuzirekodi, kwa hivyo kuondoa kifurushi na kuondoa bidhaa ni kazi mbili tofauti. Runbook iliyo hapa chini hutenganisha kumbukumbu mbili na kumaliza uondoaji kwa makusudi.
Wasanidi wawili, kumbukumbu mbili tofauti
Vifurushi vya Debian huweka orodha ya faili, na purge hufuta hasa kile orodha hiyo inataja pamoja na usanidi wa kifurushi. Kisanidi cha shell au kifurushi cha .run hakiweki orodha kama hiyo; huandika popote inapotaka, kwa kawaida katika /opt, /usr/local na /etc/systemd/system. Hakuna njia yoyote kati ya hizo inayoonekana katika orodha ya faili za kifurushi chochote, kwa hivyo dpkg haizijui wala haziwasilishi. Mwishowe unabaki na wamiliki wawili wa usanidi kwenye mfumo mmoja wa faili, na mmoja tu wao huweka hesabu.
Muulize dpkg kuhusu njia mahususi kabla ya kuifuta. Njia ambayo anaikana ni yako kuiondoa, na jibu hilohilo linaeleza kama sasisho la baadaye lingeirudisha.
dpkg -S /etc/systemd/system/acmevpn.service
systemctl list-unit-files | grep -i acmevpn
Unit na kiungo chake cha wants ni faili tofauti
Kuwezesha ni kitendo tofauti na kusakinisha. Unit hutangaza uhusiano wa lengo katika sehemu ya [Install], na systemctl enable hubadilisha matangazo hayo kuwa viungo vya ishara ndani ya saraka ya .wants/ ya kila lengo. Sasa kuna njia mbili: faili ya unit, na kiungo kinachoivuta kwenye lengo la boot. Futa faili pekee na kiungo hakielekezi popote, jambo ambalo huzalisha malalamiko wakati wa boot; futa kiungo pekee na unit inabaki kuanzishika kwa jina. Vyote viwili lazima viondoke.
Viondoe kwa mpangilio na kisha upakie upya, ili systemd iachane kuweka fasili za zamani kwenye kumbukumbu.
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
Soma FragmentPath badala ya kudhani mahali, kwa sababu msambazaji anaweza kuwa aliandika kwenye /usr/lib/systemd/system au /lib/systemd/system badala ya /etc. Kufuta nakala uliyoitumaini kunaacha ile inayofanya kazi ikiendelea, na marekebisho yanaonekana kufanikiwa hadi upakiaji upya unaofuata. Orodhesha faili za unit tena baada ya upakiaji kumalizika, na thibitisha kuwa jina halionekani tena.
Tafuta binari inayoiweka hai mpangilio huu
Unit iliyowezeshwa huendelea kuanzisha daemon bila kujali kile hifadhidata ya vifurushi inachoamini. Mchakato huo unaweza kurudisha handaki, kuongeza njia tena au kurejesha kanuni ya kill-switch, na tabia inaonekana isiyo ya kawaida hadi uangalie mpangilio. Fuata njia ya ExecStart na uangalie kama binari bado iko hapo, kwa sababu faili inayotekelezeka iliyoachwa chini ya /opt ndiyo kila kitu mpangilio unahitaji. Kufuta unit kunasimamisha mwanzo uliopangwa; hakufuti programu.
Shughulikia saraka za hali kwa uangalifu huo huo. Tokeni za akaunti, wasifu zilizozalishwa na orodha za seva zilizohifadhiwa zinaishi chini ya /var/lib au katika saraka ya nyumbani, na hizo ni vyeti, si hifadhi ya kutupa. Ziondoe baada ya huduma kusimama, kwa makusudi, na uandike ulichochukua.
sudo ls -l /opt/acmevpn /usr/local/bin/acmevpn
sudo find /var/lib -maxdepth 2 -iname "*acme*"
systemctl is-enabled acmevpn.service
Chagua mmiliki mmoja wa boot na ujaribu
Wagombea watatu wanaweza kudai boot, na kuweka wote watatu huzalisha mashindano badala ya ulinzi maradufu. Faili ya kuanza kiotomatiki ya desktop hufanya kazi tu baada ya mtu kuingia, unit ya systemd hufanya kazi mapema zaidi lakini inahitaji mteja anayefanya kazi bila skrini, na ingizo la cron @reboot huwaka kwa ratiba ambayo inaweza kuwa si sahihi kwa mteja wa mtandao. CLI ya msambazaji inaweza pia kuhitaji hoja ya seva, kwa sababu wakati wa boot hakuna kikao cha awali cha kuendelea. Chagua mgombea anayelingana na jinsi mteja anavyothibitisha, na uwaache wengine.
Ijaribu kwa kuwasha upya mashine na kuangalia mambo matatu huru: hali ya unit, orodha ya michakato, na muunganisho mpya kwa kitu unachoweza kuthibitisha. Mteja anayehitaji pete ya funguo au kuingia kwa maingiliano hushindwa wakati wa boot hata akiwa na faili sahihi ya unit, na journal inasema hivyo ikiwa unaisoma badala ya hali ya huduma pekee.
Ama mpe mteja vyeti vinavyofanya kazi bila swali, au muanzishe wakati wa kuingia. Vyote viwili vinaweza kuteteleka, na kuviunganisha ndiyo jinsi handaki moja hupata wamiliki wawili wanaogombana juu yake.
Andika kile purge inayofuata inapaswa kutarajia
Andika mambo mawili baada ya uondoaji wowote wa mikono: kisanidi kipi kiliumba mpangilio, na mmiliki yupi anauanzisha sasa. Kumbuka hicho hubadilisha purge inayofuata kutoka mshangao hadi kipengee cha orodha ya ukaguzi, na huishi muda mrefu kuliko mtu aliyefanya kazi hiyo.
Kihifadhi kando ya usanidi wa huduma na si katika saraka ya kibinafsi, na uweke tarehe, kwa sababu sasisho la msambazaji linaweza kurejesha unit uliyoifuta. Kulinganisha systemctl list-unit-files na kumbuka hicho kila baada ya miezi michache hukamata urejeshaji wakati marekebisho bado ni ya bei nafuu.