መተግበሪያን በ & ወይም nohup ማስኬድ ጥሩ ነው — አገልጋዩ ዳግም እስኪነሳ፣ ሂደቱ እስኪበላሽ፣ ወይም መዝገቦቹን ማግኘት እስክትፈልጉ ድረስ — ከዚያ ይፈርሳል። systemd መደበኛው መልስ ነው: መተግበሪያዎን በማስነሻ ጊዜ ይጀምራል፣ ቢሞት እንደገና ያስነሳዋል፣ እና መዝገቦቹንም ይይዛል። ስክሪፕት ወይም ባይነሪ ወደሚተዳደር አገልግሎት መለወጥ አንድ ትንሽ ፋይል ነው።
1. የዩኒት ፋይል ይጻፉ
/etc/systemd/system/myapp.service ይፍጠሩ:
[Unit]
Description=My application
After=network.target
[Service]
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/run.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
ExecStart፣ WorkingDirectory እና User ን ለመተግበሪያዎ ያስተካክሉ። Restart=always ሕያው የሚያደርገው ነው።
2. ልዩ ተጠቃሚ ይፍጠሩ (ይመከራል)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
እንደ ኢ-root ተጠቃሚ ማስኬድ መተግበሪያው ወደፊት ቢጣስ ጉዳቱን ይገድባል።
3. ያንቁትና ይጀምሩት
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable በማስነሻ ጊዜ እንዲጀምር ያደርገዋል፤ --now ወዲያውኑ ይጀምረዋል።
4. ሁኔታንና መዝገቦችን ይመልከቱ
sudo systemctl status myapp
journalctl -u myapp -f # ቀጥታ መዝገቦችን ይከታተሉ
የዕለት ተዕለት ትዕዛዞች
sudo systemctl restart myapp # ከለውጥ በኋላ እንደገና ማስነሳት
sudo systemctl stop myapp # ያቁሙት
sudo systemctl disable myapp # በማስነሻ ጊዜ መጀመሩን ያቁሙ
ታማኝ ማስጠንቀቂያዎች
- የዩኒት ፋይል ካረሙ በኋላ
daemon-reloadያሂዱ፣ አለበለዚያ systemd አሮጌውን ስሪት ይጠቀማል። - የመበላሸት ዑደቶችን ይጠንቀቁ። መተግበሪያው ወዲያውኑ ከከሸፈ፣
Restart=alwaysለዘላለም እንደገና ይሞክራል —RestartSec=5ሙከራዎቹን ያራርቃል፤ መሠረታዊ ስህተቱን በመዝገቦቹ በኩል ያስተካክሉ። - ኢ-root
User=ን ይምረጡ የተጣሰ መተግበሪያ ሙሉ አገልጋዩን እንዳይይዝ።
ቀጣይ ደረጃዎች
የ systemd አገልግሎት ማንኛውንም ነገር 24/7 ሥራ ላይ የምታቆይበት መንገድ ነው — ለምሳሌ ሰዓቱን ሙሉ የሚሰራ የ AI ወኪል ወይም በራስ የተስተናገደ የ RustDesk አገልጋይ ኋላ ያለው ማስተላለፊያ። መተግበሪያዎ በምትኩ በኮንቴይነር ከሆነ፣ የ Docker --restart unless-stopped ተመሳሳይ ሚና ይጫወታል — ይመልከቱ Docker እንዴት እንደሚጫን።
አስተያየቶች
እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።