Puncte:0

Este posibil ca un serviciu systemd să se actualizeze singur?

drapel in

Hei, oameni fără greșeală de la server,

Aș dori să scriu un serviciu systemd care se poate actualiza singur.

Mai exact, la fiecare 5 minute ar trebui să se uite la Amazon S3 pentru versiuni noi ale binarului său și .serviciu fișiere. Dacă au fost actualizate, ar trebui să le descarce și să le înlocuiască, apoi să repornească singur.

Din păcate, înțeleg că systemd nu permite modificarea fișierelor aflate în uz.

Există vreo modalitate standard de a realiza acest lucru?

Mulțumiri!

EDIT: Pentru a clarifica, vă întreb dacă este posibil să faceți acest lucru cu un singur serviciu.Îmi dau seama că aș putea avea o pereche de servicii care se actualizează reciproc, dar asta pare neelegant.

4snok avatar
drapel es
de ce nu vrei să folosești systemd.times sau cron pentru această sarcină?
Puncte:1
drapel us

Actualizarea fișierelor legate de fișierele systemd .service sau executabile de program este aceeași cu actualizarea oricărui alt fișier.

Ar trebui să faceți acest lucru cu gestionarea configurației, cum ar fi Ansible, dar pentru a o face așa cum este, fluxul dvs. de lucru general ar putea folosi un script bash/python care face următoarele:

  1. Obține fișierele de pe serverul web/s3/etc.
    • Puteți face o verificare rapidă md5sum pentru a compara diferențele. Sau comparați datele, alte metadate pentru a determina dacă fișierul este nou sau modificat
  2. Înlocuiți fișierele după cum este necesar
    • Poate ai nevoie Stop serviciul (serviciu <nume serviciu> oprire) în prealabil dacă fișierele sunt în uz.
  3. Alerga systemctl daemon-reload pentru a spune systemd să „rescaneze” fișierele de serviciu pentru orice modificări.
  4. Repornește/pornește serviciul în cauză

Puteți încărca apoi acel script în cron sau ca un cronometru systemd pentru a rula într-un program.

drapel in
Mulțumesc și înțeleg că răspunsul este „nu”. Nu, un serviciu nu se poate actualiza singur - trebuie să utilizați un al doilea serviciu pentru a-l actualiza pe primul.
Rino Bino avatar
drapel us
Ei bine, cred că se înclină mai mult spre „da – este posibil din punct de vedere tehnic”. Depinde de ce proces rulează ca serviciu. Dacă ați rulat procesul de script de mai sus ca serviciu systemd, ați putea face acest lucru. Ca un mecanism de auto-actualizare scris în procesul însuși. Ar putea chiar să repornească singur. Depinde de caz de utilizare, dar majoritatea lucrurilor sunt întotdeauna posibile, în funcție de cât de creativ devii.

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.