Introducere

Systemd este un sistem init puternic utilizat de majoritatea distribuțiilor Linux moderne pentru a gestiona procesele sistemului și ale serviciilor. Una dintre caracteristicile sale cheie este capacitatea de a porni automat serviciile la pornire. Acest articol vă va ghida prin procesul de configurare a unui serviciu care să pornească la pornire cu ajutorul Systemd, asigurându-vă că aplicațiile dvs. critice rulează fiabil ori de câte ori sistemul este repornit.

Înțelegerea serviciilor Systemd

Systemd utilizează fișiere unitare pentru a defini și gestiona serviciile. Aceste fișiere unitare sunt stocate în:

  • Servicii la nivel de sistem: /etc/systemd/system/ și /lib/systemd/system/
  • Servicii specifice utilizatorului: ~/.config/systemd/user/

Un fișier de unitate de serviciu are de obicei extensia .service și conține directive de configurare care indică Systemd cum să gestioneze serviciul.

Crearea unui fișier de serviciu Systemd

Pentru a configura un serviciu care să pornească la pornire, trebuie să creați un fișier de serviciu Systemd. Iată un exemplu de creare a unui serviciu personalizat.

1. Crearea fișierului de serviciu

Executați următoarea comandă pentru a deschide un nou fișier de serviciu într-un editor de text:

sudo nano /etc/systemd/system/myservice.service

2. Definirea configurației serviciului

Adăugați următorul conținut, modificându-l în funcție de aplicația dvs:

[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myapp
Restart=always
User=myuser
Group=mygroup
WorkingDirectory=/home/myuser/

[Install]
WantedBy=multi-user.target

Explicație:

  • After=network.target: Asigură pornirea serviciului după ce rețeaua este disponibilă.
  • ExecStart=/usr/bin/myapp: Definește comanda de pornire a serviciului.
  • Restart=always: Asigură repornirea serviciului în caz de eșec.
  • User=myuser și Group=mygroup: Rulează serviciul sub un anumit utilizator și grup.
  • WantedBy=multi-user.target: Asigură pornirea serviciului în modul multiutilizator (nivel de execuție implicit pentru majoritatea serverelor).

3. Reîncărcați Systemd și activați serviciul

După ce fișierul de serviciu este creat, reîncărcați Systemd pentru a recunoaște noul serviciu:

sudo systemctl daemon-reload

Activați serviciul pentru a porni la pornire:

sudo systemctl enable myservice.service

4. Porniți și verificați serviciul

Porniți manual serviciul:

sudo systemctl start myservice.service

Verificați starea serviciului:

sudo systemctl status myservice.service

Dacă totul este configurat corect, ar trebui să vedeți o ieșire care indică faptul că serviciul rulează.

Gestionarea serviciului

Iată câteva comenzi utile pentru gestionarea serviciului Systemd:

  • Reporniți serviciul:
    sudo systemctl restart myservice.service
  • Opriți serviciul:
    sudo systemctl stop myservice.service
  • Dezactivați pornirea serviciului la pornire:
    sudo systemctl disable myservice.service
  • Vizualizați jurnalele legate de serviciu:
    journalctl -u myservice.service --no-pager

Concluzii

Utilizarea Systemd pentru a porni serviciile la pornire este o modalitate simplă și eficientă de a vă asigura că aplicațiile critice rămân în funcțiune după repornirea sistemului. Prin configurarea corectă a unui fișier de servicii Systemd, activarea acestuia la pornire și gestionarea sa cu systemctl, puteți îmbunătăți fiabilitatea și automatizarea mediului Linux.