برنامه نویسی

برای برنامه سوئیفت سیستم شده است

این پست برای توسعه دهندگان سویفت سمت سرور است.

همه برنامه‌های روی یک سرور باید تحت نظارت دایمون راه‌اندازی شوند. ممکن است قبلاً استفاده می کنید supervisord یا systemd.

این مقاله به شما نشان می دهد که چگونه زندگی خود را با آن ساده کنید systemd با ادغام مستقیم آن در برنامه خود.

ابتدا، بیایید ببینیم که معمولاً چگونه با آن کار می کنیم systemd و مراحل لازم برای راه اندازی یک سرویس.

خالص systemd

راه اندازی

با جستجوی آنلاین نمونه ها و ذخیره آن در فایل، یک فایل پیکربندی واحد را به صورت دستی ایجاد کنید /etc/systemd/system پوشه

چندان آسان نیست، درست است؟ اکثر مردم در جایی در این اطراف تسلیم می شوند.

مدیریت

شما باید چند دستور ساده را به خاطر بسپارید:

systemctl start myapp.service
          restart myapp.service
          stop myapp.service
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

بلکه اسمی که خدمتتون دادید 🙉

فراموش نکنید که پس از ایجاد فایل پیکربندی واحد، برنامه خود را راه اندازی کنید.

اگر می خواهید سرویس را حذف کنید

systemctl stop myapp.service
systemctl start clean --all
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

به خاطر سپردن خیلی سخت نیست، اما هنوز …

سیاههها

اینجاست که بیشتر افراد گم می‌شوند، زیرا سیاهه‌ها می‌توانند در برخی از آنها ذخیره شوند .log فایل ها در جایی در سیستم هستند، یا باید از آن استفاده کنید journalctl دستوراتی مانند این:

برای لاگ های زنده:

journalctl -u myapp -f
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

برای چند خط لاگ آخر:

journalctl -u myapp -n 100 --no-pager
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

من معتقدم به خاطر سپردن آن کمی سخت است و من اغلب از آن استفاده می کنم up-arrow در کنسول برای پیدا کردن دستور مناسب از تاریخ.

🍰 راه پلاگین سویفت

SwiftSystemd به نجات!

این یک راه ساده برای کنترل همه موارد فوق بدون سردرد ارائه می دهد.

⚡️نصب

برنامه خود را باز کنید Package.swift و فقط یک خط اضافه کنید:

.package(url: "https://github.com/MihaelIsaev/SwiftSystemd.git", from:"1.0.0")
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از آن، شما آماده رفتن هستید!

🛠️ راه اندازی

بیایید ببینیم چگونه یک فایل پیکربندی واحد مناسب برای آن ایجاد کنیم systemd. در پوشه برنامه خود، فقط اجرا کنید:

swift run systemd install
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

چند سوال در کنسول از شما می‌پرسد و کارتان تمام می‌شود.

یا می توانید پاسخ ها را از قبل به صورت زیر مشخص کنید:

swift run systemd install -c release -t App -u mike
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کجا
-c یا --config برای پیکربندی است: release یا debug
-t یا --target برای نام هدف اجرایی است
-u یا --user برای کاربری است که سرویس تحت آن اجرا می شود

این دستور فایل پیکربندی واحد زیر را ایجاد می کند:

[Unit]
Description="AppName"
After=network.target

[Service]
User={user}
EnvironmentFile=/path/to/AppName/.env
WorkingDirectory=/path/to/AppName
TimeoutStopSec=2

Restart=always

ExecStart=/path/to/AppName/.build/{config}/{target}

[Install]
WantedBy=multi-user.target
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

همین! شما برنامه خود را تنها در دو مرحله ساده به روش درست تنظیم کرده اید و در حال حاضر در حال اجرا است.

📋 سیاهههای مربوط

یکی از ضروری‌ترین کارها تماشای گزارش‌ها است و به آسانی:

swift run systemd logs
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این لاگ های زنده برنامه شما را از طریق نمایش می دهد journalctl.

swift run systemd logs --limit 100
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این آخرین را نشان می دهد 100 خطوط از گزارش برنامه شما از طریق journalctl

آسان به خاطر سپردن!

🎛️ مدیریت

می توانید وضعیت برنامه را با اجرای زیر بررسی کنید:

swift run systemd status
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

یا با دستورات زیر وضعیت برنامه را مدیریت کنید:

swift run systemd start    # starts the app
                  stop     # stops the app
                  restart  # restart the app
                  disable  # temporarily disables the app
                  enable   # re-enables the app
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

شما همچنین می توانید ارسال کنید kill سیگنال به برنامه:

swift run systemd kill
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

🧹 تمیز کردن

اگر دیگر به این سرویس نیاز ندارید، می توانید آن را به راحتی حذف کنید:

swift run systemd uninstall
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این حذف می شود systemd فایل پیکربندی و اگر سرویس همچنان فعال باشد متوقف می شود.

من معتقدم که اکنون می توانید همه چیز را دور بریزید systemctl و journalctl یادداشت ها، درست مثل من!

❤️ با خیال راحت مشارکت کنید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا