لینکس میں سروس فائل کیسے بنائیں

Lynks My Srws Fayl Kys Bnayy



systemd init سسٹم اب تقریباً تمام لینکس ڈسٹری بیوشنز کا حصہ ہے۔ ایڈمنسٹریٹر یا ڈویلپر کے طور پر، آپ ایسی خدمات تخلیق کرتے ہیں جن کا انتظام سسٹمڈ کر سکتا ہے۔ مثال کے طور پر، اگر آپ بوٹ پر خدمات شروع کرنا چاہتے ہیں یا انہیں دستی طور پر کنٹرول کرنا چاہتے ہیں، تو یہ کسٹم سروس فائل کے ذریعے کیا جا سکتا ہے۔

اس ٹیوٹوریل میں، میں لینکس پر سسٹم ڈی سروس فائل بنانے کا طریقہ بتاؤں گا۔







سروس فائل کیا ہے؟

مزید آگے جانے سے پہلے، آئیے سمجھتے ہیں کہ سسٹمڈ سروس فائل کیا ہے اور یہ لینکس پر کیسے بنتی ہے۔



ایک systemd سروس فائل میں سروس کو منظم کرنے کے لیے systemd کے لیے سیٹ کردہ ہدایات ہوتی ہیں۔ یہ عام طور پر تین حصوں پر مشتمل ہے:



  • یونٹ
  • سروس
  • انسٹال کریں۔

دی یونٹ سیکشن سروس کے بارے میں بنیادی معلومات پر مشتمل ہے جیسے ایک مختصر تفصیل، دستاویزات کے صفحات، اور انحصار کا راستہ۔ دی انسٹال کریں۔ سیکشن اختیاری ہے، لیکن عام طور پر یہ انتظام کرتا ہے کہ کس سسٹم کی حالت میں سروس کو فعال کیا جانا چاہیے۔





دی سروس سیکشن عام طور پر یونٹ اور انسٹال سیکشن کے درمیان سینڈویچ کیا جاتا ہے۔ یہ بنیادی طور پر سروس کی قسم اور ایگزیکیوٹیبلز کے راستے پر مشتمل ہے جو کہ بنیادی طور پر سسٹمڈ کے ذریعے سروس کو طلب کرنے پر عمل کرنے کے احکامات ہیں۔

یہاں یہ ہے کہ ایک عام سروس فائل کا ڈھانچہ کیسا لگتا ہے۔



[ یونٹ ]

ہدایت 1 =ہدایت

ہدایت 2 =ہدایت



[ سروس ]

ہدایت 1 =ہدایت

ہدایت 2 =ہدایت



[ انسٹال کریں۔ ]

ہدایت 1 =ہدایت

ہدایت 2 =ہدایت

یہاں، ہدایات ایسے پیرامیٹرز ہیں جو اپنے متعلقہ ان پٹ لیتے ہیں۔ مثال کے طور پر، the تفصیل ہدایت خدمت کے نام کی ایک تار لیتی ہے۔ اسی طرح، ExecStart قابل عمل کے مکمل راستے کو مدنظر رکھتا ہے۔

کی ایک عام سروس فائل ssh.service ذیل میں دیا گیا ہے.

سروس فائل کیسے بنائیں

سسٹمڈ سروس بنانے کے لیے، کلیدی ہدایات کو سمجھنا ضروری ہے۔ اس گائیڈ میں، میں ان ضروری ہدایات کا احاطہ کروں گا جو آپ کو مکمل طور پر فعال سروس فائل بنانے میں مدد کر سکتی ہیں۔

سروس فائل بنانے میں متعدد مراحل شامل ہیں، آئیے اسکرپٹ فائل بنانے کے ساتھ شروع کرتے ہیں۔

نوٹ: ذیل میں بیان کردہ طریقہ کو جاری رکھنے کے لیے، آپ کے پاس روٹ مراعات کا ہونا ضروری ہے۔

1. اسکرپٹ بنانا

ابتدائی مرحلے میں کوڈ کی تخلیق شامل ہے جو سروس کے کام شروع کرنے پر عمل میں لایا جائے گا۔ اس ٹیوٹوریل کے لیے، میں ایک bash اسکرپٹ بنا رہا ہوں جو لینکس سسٹم کے اپ ٹائم اور میموری کے استعمال کو محفوظ کرے گا۔

آئیے موجودہ ڈائرکٹری میں کے نام سے اسکرپٹ بنائیں myscript.sh نینو ایڈیٹر کا استعمال کرتے ہوئے

sudo نینو myscript.sh

اب نیچے دی گئی اسکرپٹ کو فائل میں شامل کریں اور دبا کر محفوظ کریں۔ ctrl+x اور پھر اور .

#!/bin/bash

بازگشت '>>آپ کے سسٹم کا اپ ٹائم یہ ہے<<' > گھر / خود / myfile.txt

اپ ٹائم >> گھر / خود / myfile.txt

بازگشت '>>آپ کے سسٹم کا میموری کا استعمال یہ ہے<<' >> / گھر / خود / myfile.txt

مفت -m >> گھر / خود / myfile.txt

سونا 60

اسکرپٹ میں ایکو سٹرنگز اور اپ ٹائم اور مفت احکامات

دی اپ ٹائم لینکس پر کمانڈ کا استعمال یہ پرنٹ کرنے کے لیے کیا جاتا ہے کہ کوئی سسٹم کتنے عرصے سے چل رہا ہے، اور کتنے صارفین پچھلے 1، 5 اور 15 منٹ کے اوسط سسٹم کے بوجھ سے جڑے ہوئے ہیں۔

دی مفت کمانڈ سسٹم کے میموری استعمال کو پرنٹ کرنے کے لیے استعمال کیا جاتا ہے، جبکہ -m پرچم کو آؤٹ پٹ میں پرنٹ کرنے کے لیے استعمال کیا جاتا ہے۔ MBs .

ٹیکسٹ فائل میں معلومات کو محفوظ کرنے کے لیے، ہم خصوصی آپریٹرز استعمال کرتے ہیں جنہیں ری ڈائریکشن آپریٹرز کہتے ہیں۔ دی > آپریٹر کا استعمال مذکورہ ٹیکسٹ فائل میں ٹیکسٹ داخل کرنے کے لیے کیا جاتا ہے۔ تاہم، اگر فائل پہلے سے موجود نہیں ہے، تو یہ بنائی جائے گی۔ جبکہ >> آپریٹر کا استعمال فائل میں ٹیکسٹ شامل کرنے کے لیے کیا جاتا ہے۔ دی سونا کمانڈ کا استعمال سروس کی سرگرمی کو کم از کم ایک منٹ تک برقرار رکھنے کے لیے کیا جاتا ہے۔

اب، ضروری اجازتیں دے کر اسکرپٹ کو قابل عمل بنائیں۔

sudo chmod +x myscript.sh

اسکرپٹ کے پاس اب عمل درآمد کی اجازت ہے، آئیے اگلے حصے کی طرف چلتے ہیں۔

نوٹ: سروس فائل کو غلطی سے پاک بنانے کے لیے، bash اسکرپٹ میں فائل کا مطلق راستہ استعمال کریں۔

2. ایک .service فائل بنانا

اگلا، کے ساتھ ایک سروس فائل بنائیں سروس توسیع سروس فائل کو میں بنانا ضروری ہے۔ /etc/systemd/system ڈائریکٹری سب سے پہلے، کا استعمال کرتے ہوئے اس ڈائریکٹری پر جائیں سی ڈی کمانڈ.

سی ڈی / وغیرہ / systemd / نظام

آپ کسی بھی ڈائریکٹری میں سروس فائل بنا سکتے ہیں، اور بعد میں اس فائل کو اس ڈائرکٹری میں منتقل کر سکتے ہیں۔

میں اس کے ساتھ ایک سروس فائل بنا رہا ہوں۔ myservice.service نام

sudo نینو myservice.service

اب فائل میں درج ذیل لائنیں شامل کریں۔

[ یونٹ ]

تفصیل =میری خدمت

[ سروس ]

قسم = سادہ

ExecStart = / بن / bash / گھر / خود / script.sh

دوبارہ شروع کریں = ناکامی پر

[ انسٹال کریں۔ ]

WantedBy =ملٹی یوزر۔ٹارگٹ

یاد رکھیں کہ [یونٹ]، [سروس]، اور [انسٹال کریں] ہیں حساس کیس . سروس فائل کام نہیں کرے گی اگر ان میں سے کسی کا بھی غلط ذکر کیا گیا ہو، جیسے [UNIT]، یا [SERVICE]۔

سروس کا نام بطور بیان کیا گیا ہے۔ میری خدمت میں تفصیل کی ہدایت [یونٹ] سیکشن

دی قسم سروس کی ہے سادہ میں [سروس] سیکشن، جو پہلے سے طے شدہ قسم ہے۔ کانٹا ، ایک شاٹ ، مطلع ، dbus ، اور بیکار کچھ دوسری قسمیں ہیں۔

اگر آپ سروس کو صارف کے لیے مخصوص بنانا چاہتے ہیں، تو صارف ہدایت کو صارف کے صارف نام کے ساتھ بھی استعمال کیا جا سکتا ہے۔ اس ہدایت کو استعمال کرنے سے سروس صارف کی اجازت پر منحصر ہو جائے گی۔

جبکہ ExecStart ہدایت پر عمل درآمد کا مکمل راستہ شامل ہے۔ مندرجہ بالا مثال میں، سکرپٹ فائل myscript.sh میں محفوظ کیا جاتا ہے۔ /home/sam/ ڈائریکٹری یہ ہدایت درحقیقت اس بات کا انتظام کرتی ہے کہ جب سسٹم ڈی کے ذریعہ کسی سروس کو طلب کیا جائے تو اس پر عمل درآمد کیا جائے۔ اگر کمانڈ کا مکمل راستہ متعین نہیں ہے، تو یہ خود بخود مطلق راستوں کو ٹھیک کرنے کے لیے حل ہو جائے گا جیسے /usr/local/bin ، /usr/bin/، اور /بن . جب تک وہ معیاری کمانڈ ڈائریکٹریز میں ہیں، قابل عمل نام کا استعمال کرنا بالکل ٹھیک ہے، تاہم، مطلق راستے کا ذکر کریں ورنہ۔ نوٹ کریں کہ ایک سے زیادہ کمانڈز بھی استعمال کی جا سکتی ہیں جو سیمیکولن (;) سے الگ ہوتی ہیں۔

دی [انسٹال کریں] سیکشن اختیاری ہے؛ تاہم، یہ بتاتا ہے کہ سروس کیسے فعال ہے۔ دی WantedBy directive رن لیول ٹارگٹ فائلوں کو پیرامیٹرز کے طور پر لیتا ہے۔ مختلف ٹارگٹ فائلوں نے سسٹم کے مختلف رن لیولز کی نشاندہی کی جیسے بجلی بند ، بچاؤ ، کثیر صارف ، گرافیکل ، اور دوبارہ شروع کریں .

دی multi-user.target اس کا مطلب ہے کہ سروس اس وقت فعال ہو جائے گی جب سسٹم اس حالت میں ہو کہ ملٹی یوزر نان گرافیکل سیشنز کی اجازت دے سکے۔

3. سروس کو چالو کرنا

سروس کو چالو کرنے کے لیے، پہلے سسٹمڈ کنفیگریشنز کو استعمال کرکے دوبارہ لوڈ کریں۔ systemctl افادیت

sudo systemctl ڈیمون دوبارہ لوڈ کریں۔

اگلا، استعمال کرکے دوبارہ سروس کو چالو کریں۔ systemctl کے ساتھ حکم فعال .

sudo systemctl فعال myservice.service

تصدیق کرنے کے لیے، کا استعمال کرتے ہوئے سروس کی حیثیت کو چیک کریں۔ سسٹم سی ٹی ایل کی حیثیت کمانڈ.

سروس کامیابی سے چل رہی ہے۔

اب، آئیے ٹیکسٹ فائل کو پڑھیں myfile.txt میں تخلیق کردہ سروس /گھر ڈائریکٹری

عام صارف کے لئے سسٹمڈ سروس فائل کیسے بنائیں

ایک عام صارف کے لیے سروس فائل بنانے کا طریقہ ایڈمنسٹریٹر کی طرف سے سروس فائل بنانے کے طریقہ سے ملتا جلتا ہے۔ تاہم، عام صارفین کے لیے سروس فائل کو محفوظ کرنے کی ڈائریکٹری مختلف ہے۔ عام صارفین کو اپنی سروس فائلوں کو میں رکھنا چاہیے۔ ~/.config/systemd/user . یہ ڈائریکٹری کا استعمال کرتے ہوئے بنائی جانی چاہیے۔ mkdir کمانڈ.

mkdir ~ / .config / systemd / صارف

ایک عام صارف کے ذریعہ سروس کو چالو کرنے کے لئے - صارف کمانڈ کے ساتھ داخل کیا جاتا ہے۔ systemctl کے بجائے sudo .

systemctl --صارف ڈیمون دوبارہ لوڈ

systemctl --صارف فعال SERVICE-NAME.service

systemctl --صارف SERVICE-NAME.service کی حیثیت

دی - صارف آپشن کا استعمال صارف کی سسٹمڈ سروس فائلوں کو منظم کرنے کے لیے کیا جاتا ہے۔

سروس فائل کو کیسے ہٹایا جائے۔

سروس فائل کو ہٹانے کے لیے، سب سے پہلے، سروس کو بند کرنے کی ضرورت ہے۔

sudo systemctl stop SERVICE-NAME.service

کا استعمال کرتے ہوئے اسٹیٹس چیک کریں۔ سسٹم سی ٹی ایل کی حیثیت یہ جاننے کے لیے کہ سروس بند ہے یا نہیں۔ پھر سروس فائل کو استعمال کرکے ہٹا دیں۔ rm کمانڈ.

sudo rm / وغیرہ / systemd / نظام / SERVICE-NAME.service

اب، دوبارہ لوڈ کریں systemd ترتیب

sudo systemctl ڈیمون دوبارہ لوڈ کریں۔

نتیجہ

کسٹم سسٹمڈ سروس مختلف حالات میں فائدہ مند ہے۔ اس گائیڈ میں، ہم نے سیکھا کہ کس طرح سسٹم ایڈمنسٹریٹر کے لیے کسٹم سسٹمڈ سروس فائل بنانا ہے اور عام صارف سروس فائل کیسے بنا سکتے ہیں۔ مزید برآں، ہم سروس فائل کو ہٹانے کا طریقہ کار بھی دیکھتے ہیں۔