Puncte:5

Cum să redenumești un serviciu systemd fără a afecta procesul (fără oprire/repornire)

drapel eg

Există mai multe motive pentru a fi nevoit să redenumească un serviciu systemd în producție. De exemplu:

  • pentru a o diferenția mai bine de una nouă
  • pentru că șeful tău a comandat-o
  • din cauza scripturilor moștenite
  • ...

Presupunând un nou serviciu generic creat în /etc/systemd/system/foo.service și activat și pornit după cum urmează: [1]

systemctl daemon-reload
systemctl enable --now foo

Apoi, poate doriți să-l redenumiți de la foo.service la bar.serviciu fără a afecta în vreun fel procesul aferent.

În circumstanțe normale, puteți face ceva de genul acesta:

mv foo.service bar.service
systemctl daemon-reload
systemctl dezactivați foo
bara de activare systemctl

Apoi obțineți:

  • systemctl status foo: alergare nu a fost gasit dezactivat
  • bara de stare systemctl: nu alearga activat

Deci, poate doriți să remediați cu:

systemctl stop foo
bara de pornire systemctl

Sau cu un reboot. Cu toate acestea, în mediile de producție, acest lucru nu este fezabil, deoarece nu doriți să opriți aplicația pentru o astfel de modificare. În plus, repornirile sunt programate după luni sau ani. În același timp, este riscant să păstrezi mult timp un serviciu oprit ca bar care nu trebuie pornit din greșeală înainte de a opri alergarea negăsită foo.

Pe scurt. Ce abordare ați folosi pentru a redenumi un serviciu systemd în producție?

Condiția ideală ar fi ca cele două servicii să fie retrocompatibile. Astfel, oprirea foo se opreste de asemenea bar si invers.


Puncte:7
drapel cn

S-ar putea să existe o metodă mai bună de care nu știu, dar aceasta îmi vine în minte ca o soluție care, în principal, vă oferă ceea ce aveți nevoie până când aveți șansa de a reporni serviciul:

  1. Creați un link simbolic cu noul nume dorit care indică fișierul de serviciu existent (și systemctl daemon-reload).
    Systemd tratează linkurile simbolice către unități ca aliasuri în loc de unități separate, ceea ce înseamnă că ambele nume se vor referi acum la aceeași unitate (aceeași stare, același lucru).
  2. Planificați să înlocuiți efectiv serviciul în următoarea fereastră de întreținere.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.