Skip to content

Latest commit

 

History

History
57 lines (36 loc) · 3.08 KB

service.md

File metadata and controls

57 lines (36 loc) · 3.08 KB

در این داکیومنت میخواهم نحوه اجرای برنامه به صورت سرویس رو توضیح بدم و اینکه چطور کاری کنیم هر n ساعت یک بار ری استارت بشه و همچنین موقع ری استارت شدن سیستم هم اجرا بشه

اول اینکه دستور سرور داخل و خارج اتون رو اجرا کنید و تست کنید تا مطمعن شین دستور ها درست هستن و کار میکنه بعد باید سرویس رو ایجاد کنیم

مرحله اول اینکه وارد این مسیر بشین

cd /etc/systemd/system

بعد باید سرویس رو ایجاد کنیم ؛ من اسم سرویس ام رو به اختیار میزارم tunnel

nano tunnel.service

خوب حالا این محتویات رو قرار میدیم

[Unit]
Description= my tunnel service

[Service]
User=root
WorkingDirectory=/root
ExecStart=/root/FTT <your arguments> --terminate:24
Restart=always

[Install]
WantedBy=multi-user.target

خوب حالا دقت کنین که برنامه رو توی پوشه /root نصب کرده باشین فکر نکنم این نیاز به توضیح داشته باشه ؛ وارد پوشه روت بشین و یه بار دستور برنامه رو اجرا کنین تا فایل FTT اونجا باشه

دوم اینکه توی این فایلی که الان نوشتیم بخش ExecStart باید جای your argemunts حتما کامند خودتون رو بنویسید و مقادریری که داشتین رو قرار بدین اما بعدش ما یک اپشن اضافه به اسم --terminate اضافه کردیم

این اپشن یه عدد میگیره و به ساعت هست که یعنی تو این مثال بعد از ۲۴ ساعت برنامه کامل بسته میشه

ولی چون ما سرویس ایجاد کردیم ؛ برنامه به محض اینکه بسته بشه به هر دلیلی ؛ دوباره توسط سیستم مجددا اجرا میشه و اینطوری کاربر کمترین آسیپ رو میبینه اما خوب بازم خیلی بهتر هست که این ری استارت در زمانی انجام بشه مثلا ۴ تا ۸ صبح چون هربار ری استارت کانکشن ها قبلی رو لحظه ای قطع میکنه و اگه کاربر توی اون زمان مشفول دیدن ریلز اینستا یا یه سری برنامه های دیگه که به بسته نشدن کانکشن حساس هستن باشه ... ناراحت میشه :) دیگه خودتون این زمان رو تنظیم کنین

خوب الان این دستورات رو به ترتیب اجرا میکنیم تا سرویس امون تکمیل بشه و در هنگام بوت شدن سیستم هم اجرا بشه

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

pkill FTT

بعد این مراحل رو اجرا کنید

sudo systemctl daemon-reload

sudo systemctl start tunnel.service

sudo systemctl enable tunnel.service