تفاوت systemctl و service

سلام.شب به خیر.
من تا حدودی با service و systemctl آشنا هستم. تا حدی که میدونم میشه enable کرد و …

میشه بگید چه فرقی بین این ۲ هستش. و هر کدوم در کجا ازش استفاده میشه.
یک منبعی پیدا کردم که احساس کردم که خوب توضیح داده ولی چون انگلیسی ضعیف هستش نتونستم درک کنم اینم لینکش
لینک
ممنون میشم کمک کنید

systemd اصل داستان هست. یه نرم افزار که سرویس هایی که روی سیستمت داری مدیریت می کنه. service یه راه سادست برای همون کار که در واقع خودش هم از systemd استفاده می کنه

3 Likes

یه نکته‌ی دیگه هم اضافه کنم. با systemctl میشه اینطوری کامند نوشت:

systemctl restart nginx php-fpm mariadb

و یه عملیات رو روی چندتا دیمن انجام داد با یک کامند. پس بیشتر دوسش دارم :slightly_smiling_face:

3 Likes

جایی خونده بودم که xinetd هم یک برنامه ای برای مدیریت سرویس ها هستش. میتونید بگید پس فرق xinetd با systemd چی هستش؟

شما گفتید اصل داستان systemd هستش. فقط برای اینکه بهتر درک کنم میخواستم بدونم میشه گفت که systemd به عنوان پدر شناخته میشه و systemctl و service جز فرزند محسوب میشه برای مدیریت سرویس. این تفسیر من درست هستش؟ میخوام بدونم منظورتون از اصل داستان systemd هست یعنی چی

نه درست نیست. xinetd و امثال اون از بین رفتن و این روزا systemd جایگزین همه شده. systemd پروسه اصلی هست و systemctl یه نرم افزار هست برای کنترل کردن systemd.

service هم یه سکریپت ساده هست که فقط از systemctl استفاده می کنه

3 Likes

دوستان این حرف درسته:
زمانی که سرویسی با systemctl مورد تغییر قرار میگیره ، این تغییر دائمیه اما همین کار زمانی که با دستور service انجام بشه ، تا زمان ریبوت سیستم اون تغییر اعمال میشه و بعد از ریبوت به حالت قبل از اجرای این دستور برمیگرده

نه. درست نیست. یعنی کامل نیست.
وقتی شما systemctl start nginx میزنید، این سرویس روشن میشه.
وقتی شما systemctl enable nginx میزنید، زمانی که سیستم ریبوت بشه این سرویس روشن میشه.

وقتی شما هردوی اینها رو بزنید، سرویس الآن روشن میشه و هرزمان سیستم روشن بشه هم این سرویس روشن میشه.

توی دستور service من گزینه‌ی enable ندیدم. نمیدونم شاید start کار enable هم انجام بده. من هیچوقت ازش استفاده نمیکنم.

2 Likes

systemctl enable tor.service
دستور بالا سرویس tor را فعال میکند. یعنی چی؟ یعنی وقتی شما سیستم رو خاموش روشن میکنی سرویس tor همیشه active هستش.اگه جای enable شما disable قرار بدید برعکس این کار رو انجام میده
service tor.service start
دستور بالا سرویس تور در همون لحضه روشن نگه میداره. اگه شما از قبل disable کرده باشی . باید همیشه اگه لازمش داشتی بیای با دستور بالا start کنی.

کمی هم در مورد این فرایند توضیح بدم اگر اشتباهی بود دوستان همراهی کنند.
همانطور که میدونید systemd یک مجموعه از برنامه هارو به شما ارايه میده . مثل systemctl و service

systemd دارای یک سری unit هستش مثل زیر:
service.- socket – device – mount – automount – swap – target – path -timer

خود پکیج هایی یا سرویس هایی که در لینوکس نصب میکنید دارای یک unit file هستند . حالا این unit file ها کجای سیستم قرار دارند؟؟ ادرس پایین
‍‍‍‍usr/lib/systemd/system/tor.service/
خب حالا داخل این فایل چی قرار داره؟ یک سری کانفیگ به نظرم

وقتی شما دستور زیر رو میزنید
systemctl enable tor.service
یک پیغام نمایش میده عکس زیر رو ببینید


وقتی شما سرویس رو فعال کردید اومد به همون فایل کانفیگ بالا اشاره کرد. اگه فایل کانفیگ بالارو باز کنید ببینید یک سری دستورات هستش که میگی وقتی سرویس تور رو اجرا کردی این کارها باید انجام بشه . حالا این کارها یعنی چی؟؟؟منم زیاد نمیدونم یکی باید ادامشو بیاد توضیح بده :slight_smile:
ولی یک لینک پیدا کردم که اومده توضیح داده ولی چون انگلیسی من ضعیف هستش زیاد نتونستم درک کنم. اگه شما دوستان میتونید وقت دارید توضیحی راجب فایلش بدید.
لینک