در دنیای سیستم عامل ها ما موضوعی با عنوان اجرای خودکار برنامه ها داریم که در لینوکس CentOS هم چنین قابلیتی وجود دارد که با دستور chkconfig کنترل می شود. دقت داشته باشید که سیستم عامل مد نظر ما در اینجا نسخۀ شش CentOS است. البته در نسخۀ ۷ این سیستم عامل هم صدق می کند، اما تفاوت هایی وجود دارند که در آموزش های بعدی هم به آنها اشاره می کنیم. پس اگر خواسته باشید در زمان بالا آمدن سیستم عامل لینوکس روی اجرا یا عدم اجرای سرویس ها کنترل داشته باشید، قسمت ۷۹ از مجموعۀ آموزش کانفیگ سرور لینوکس را هم مطالعه کنید.
فرض کنید در مواقعی که شما بسته های نرم افزاریِ مورد نیازتان را روی سرور نصب می کنید، می خواهید آنها با شروع به کار سرور لینوکس، به طور خودکار اجرا شوند. تقریباً بیشتر نرم افزارهایی که شما نصب می کنید باید دارای چنین ویژگی باشند. به عنوان مثال فرض نمایید شما آپاچی را که همان سرویس httpd است را روی سرور نصب می کنید تا بازدید کنندگان بتوانند از محتوای سایت های روی سرور استفاده کنند (بعداً با آپاچی بیشتر آشنا خواهید شد). حالا اگر با یک بار راه اندازی مجدد (reboot) سرور آپاچی یا دیگر سرویس های ضروری از کار بیافتند و نیاز باشد دستی آنها را اجرا کنید که خیلی کار سخت خواهد شد.
به همین دلیل لینوکس با دستور chkconfig به راحتی به ما امکان مدیریت اجرای خودکار سرویس ها را در ابتدای اجرای سرور می دهد. برای اینکه وضعیت اجرای خودکار هر سرویس را روی سرور ببینید کافی است از دستور زیر استفاده کنید.
chkconfig --list
همانطور که می بینید مشخصۀ list به راحتی به ما تمامی سرویس ها را به همراه تمامیِ سطوح اجرای شان در ابتدای راه اندازی سرور نمایش می دهد. تصویری که در بالای صفحه نمایش داده شده، نمونه ای از خروجی این دستور است.
در جدولی که به عنوان نتیجۀ دستور به ما نشان داده می شود، ستون اول از سمت چپ نام تمامی سرویس ها را می توانید ببینید. مثلاً اگر تا الان Apache را نصب کرده باشید، یکی از سرویس ها در این جدول با عبارت httpd مشخص شده است که در ستون های بعدی ردیف مرتبط با آن سرویس، وضعیت های اجرایی برای هر سطح اجرایی نمایش داده شده است.
یک مفهوم دیگری که در اینجا باید با آن آشنا شوید همان Runlevel یا سطح اجرایی است. در لینوکس ۶ سطح اجرایی برای اجرای هر سرویس وجود دارد که شما هم می توانید تعیین کنید که هر سرویس با چه سطوح اجرایی، اجرا شود. ولی قبل از انجام این کار باید قادر باشید با استفاده از مشخصۀ add این دستور سرویس را به این جدول اضافه کنید. پس به دستور زیر نگاه کنید.
chkconfig --add [servicename]
که باید به جای [servicename] نام سرویس را وارد کنید. دقت داشته باشید که خیلی از سرویس هایی که در ادامه آموزش مدیریت سرور لینوکس با آنها کار خواهیم کرد، این کار را خودشان به صورت خودکار انجام می دهند. ولی به هر حال این روش افزودن یک فهرست به جدول chkconfig بود.
حالا اگر خواسته باشیم در سطوح اجرایی مختلف تعیین کنیم که به طور خودکار اجرا شود یا خیر، باید از ساختار دستور زیر استفاده کنیم.
chkconfig --levels 235 [servicename] on
باید از مشخصۀ levels به همراه عدد سطح اجرایی مد نظر استفاده کرد. بعد از آن هم نام سرویس و در انتها عبارت on آورده می شود که به طور خودکار در این سطح (runlevel) اجرا شود.
حالا کمی از سطح اجرایی سرویس ها یا همان runlevel صحبت می کنم که با آن هم غریبه نباشید. هر چند که توضیح کامل آن کمی فراتر از یک مقاله است. ولی چیز سختی نیست؛ نگران نباشید.
همانطور که گفته شد سطوح اجرایی یک سرویس به ۶ سطح تقسیم می شود. در این زیر این ۶ سطح آورده شده است.
- ۰ Halt
- ۱ Single-User mode
- ۲ Multi-user mode, console logins only (without networking)
- ۳ Multi-User mode, console logins only
- ۴ Not used/User-definable
- ۵ Multi-User mode, with display manager as well as console logins (X11)
- ۶ Reboot
مثلاً ببینید که سطح ۵ مربوط به رابط گرافیکی لینوکس است. که همانطور که در دستور آخری که توضیحش را خدمت شما دادم، سطح ۲۳۵ برای سرویس مورد نظر تعیین شد. این سطح شامل سطوح ۲، ۳ و ۵ هستند. نکتۀ جالب اینجا است که اگر راجع به سطوح اجرایی برای اجرای یک سرویس ابهام دارید، می توانید از دستور chkconfig بدون مشخصۀ levels استفاده کنید. سطح اجرایی پیش فرض برای آن دستور اعمال می شود.
chkconfig [servicename] on
پس می توانیم بفهمیم که استفاده از این دستور بسیار ساده تر از آن چیزی است که فکرش را می کنید. به راحتی در دستور بالا به جای [servicename] نام سرویس مد نظر را برای روشن کردن اجرای خودکار وارد می کنید و Enter را در خط فرمان لینوکس می زنید. حالا اگر خواسته باشید اجرای خودکار یک سرویس را خاموش کنید، باید به جای on از off استفاده نمایید.
chkconfig [servicename] off
اگر هم قصدتان خاموش کردن سرویس فقط برای تعداد خاصی از سطوح اجرایی است که باید از مشخصۀ levels طبق توضیحاتی که در بابا خدمت شما داده شده استفاده کنید.
پس برای تمرین الان باید بدانید که دستور زیر چه کار می کنید؟
chkconfig --levels 235 mysqld on
این دستور سرویس پایگاه دادۀ MySQL را برای سطوح اجرایی ۲ و ۳ و ۴ به طور خودکار اجرا می کند. دیگر سرویس ها را هم به همین ترتیب می توانید اجرای خودکارشان را فعال یا غیرفعال کنید. در ادامۀ مقاله های آموزشی کانفیگ سرور لینوکس با تک تک سرویس های مهم سرور لینوکس آشنا خواهید شد.
فعال یا غیرفعال کردن آنیِ یک سرویس بنا به تقاضا
تا اینجا یاد گرفتید که چطور با دستور chkconfig برای اجرای خودکار سرویس ها هنگام بالا آمدن لینوکس کار کنید. اما اگر هر زمان خواسته باشید یک سرویس را اجرا یا متوقف کنید، باید از ساختار دستور زیر استفاده نمایید. به جای [servicename] باید نام سرویس مد نظرتان را وارد کنید.
service [servicename] start
البته در CentOS 7 این دستور ارجاع داده خواهد شد به دستور systemctl. ولی باز هم نتیجۀ آن به شما برگردانده خواهد شد. حالا اگر خواسته باشید یک سرویس را متوقف کنید، به جای start عبارت stop را بزنید.
service [servicename] stiop
دستور زیر هم وضیت فعلیِ روشن یا خامشو بودن یک سرویس را نمایش می دهد.
service [servicename] status
اینها همگی دستورات مهم و کاربردی بودند که برای اجرا و توقف خودکار و دستیِ سرویس ها، که همانا نرم افزارهای کاربردیِ روی سرور هستند مورد استفاده قرار می گیرند. که خیلی هم سخت نبودند. البته هر کدام از آنها می توانند با مشخصه های بیشتری همراه باشند. پس سعی کنید طبق روال تهیۀ این مقاله های آموزشی کار را دنبال کنید و اگر قسمت های قبلی از مقاله های وبنولوژی را مطالعه نکردید، حتما زمان مناسب را برای خواندن و کار کردن روی آنها بگذارید. با قسمت های بعدی هم تا تبدیل شدن به یک مدیر حرفه ای سرور لینوکس همراه ما باشید.
۰ دیدگاه