Skip to main content

Systemd Service Yaratish

systemd — bu zamonaviy Linux tizimlarida xizmatlarni (service), jarayonlarni va resurslarni boshqarish uchun ishlatiladigan init tizimi. Systemd yordamida o‘z skriptlaringiz yoki dasturlaringizni xizmat sifatida avtomatik ishga tushirish, to‘xtatish va monitoring qilish mumkin.

Systemd Service Foydalari

  • Avtomatik ishga tushirish (boot paytida)
  • Xizmat holatini monitoring qilish
  • Loglarni avtomatik saqlash (journalctl)
  • Xizmatlarni bog‘lash va tartibga solish (dependencies)
  • Qayta ishga tushirish (restart policies)

Oddiy Systemd Service Yaratish

1. Service faylini yaratish

Service fayllari /etc/systemd/system/ katalogida .service kengaytmali bo‘ladi.

Misol: myapp.service

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

[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/user/myapp.py
Restart=on-failure
User=user

[Install]
WantedBy=multi-user.target

2. Service faylini tizimga qo‘shish

Faylni saqlagandan so‘ng, systemd-ga xabar berish:

sudo systemctl daemon-reload

3. Xizmatni ishga tushirish va boshqarish

sudo systemctl start myapp.service      # Xizmatni ishga tushirish
sudo systemctl enable myapp.service # Boot paytida avtomatik ishga tushirish
sudo systemctl status myapp.service # Holatini tekshirish
sudo systemctl stop myapp.service # To‘xtatish
sudo systemctl restart myapp.service # Qayta ishga tushirish

4. Loglarni ko‘rish

journalctl -u myapp.service

Service Fayl Parametrlari

  • Description: Xizmat haqida qisqacha ma’lumot
  • After: Qaysi xizmatlardan keyin ishga tushishi
  • Type: simple, forking, oneshot, notify, idle
  • ExecStart: Ishga tushiriladigan buyruq
  • Restart: Qayta ishga tushirish siyosati (on-failure, always, no)
  • User: Qaysi foydalanuvchi nomidan ishga tushishi
  • Environment: Muhit o‘zgaruvchilari
  • WorkingDirectory: Ishchi katalog

Advanced Misollar

Muhit o‘zgaruvchisi bilan

[Service]
Environment="APP_ENV=production"
ExecStart=/home/user/app.sh

Maxsus katalogda ishga tushirish

[Service]
WorkingDirectory=/home/user/app/
ExecStart=/usr/bin/node server.js

Xizmatlar orasida bog‘liqlik

[Unit]
Requires=mysql.service
After=mysql.service

Qayta ishga tushirish siyosati

[Service]
Restart=always
RestartSec=5

Foydali Buyruqlar

  • Xizmatlar ro‘yxati:
    systemctl list-units --type=service
  • Xizmatni o‘chirish:
    sudo systemctl disable myapp.service
  • Xizmatni o‘chirish va faylni o‘chirish:
    sudo systemctl stop myapp.service
    sudo systemctl disable myapp.service
    sudo rm /etc/systemd/system/myapp.service
    sudo systemctl daemon-reload

Foydali Havolalar


Systemd yordamida xizmatlarni boshqarish Linux tizimini avtomatlashtirish va barqaror ishlashini ta’minlash uchun juda muhim. To‘g‘ri sozlash va monitoring orqali tizimni samarali boshqarishingiz mumkin.