در قسمت قبلی راجع به دستور vmstat توضیحاتی را خدمت شما ارائه کردم که پیشنهاد میکنم اگر وقت کردید آن را حتماً بخوانید. در لینوکس ما دستوری با عنوان kill داریم که برای بستن فرآیندهای برنامه های کاربری لینوکس شما کاربرد دارد. شما باید شناسۀ فرآیند یا Proccess را به دستور kill داده تا این دستور آن فرآیند را ختم کند. همانطور که می دانید یک برنامه که روی رایانۀ لینوکسی شما اجرا میشود، میتواند شامل فرآیندهایی باشد که گاهی اوقات ممکن است خواسته باشید آنها را ببندید. برای اطلاعات بیشتر راجع به این بخش از مدیریت سرور لینوکس با بستن اضطراری برنامه های لینوکس با kill همراه با وبنولوژی باشید.
لابد در ویندوز با مشکل Not Responding شدن برخی از برنامه ها مواجه شدید. در این حالت حتی کلیک کردن روی دکمۀ ضربدر بالای نرم افزار، برنامه را نخواهد بست. پس از اینکه مدت زمان زیادی را صبر کردید که شاید خود برنامه خجالت بکشد و خودش بسته شود، اما همچنان میزان RAM و CPU زیادی را صرف خود میکند و در این حالت شما باید هر چه سریعتر سیستم را به حالت اولیۀ برگردانید. پس از Task Manger وارد بخش فرآیندها یا همان Proccess میشوید و با راست کلیک کردن روی فرآیند مورد نظر و انتخاب دستور End Task آن نرم افزار به طور کامل بسته میشود. این راه حل بستن نرم افزارهای هنگ کرده در ویندوز بود.
اما در لینوکس شما باید از دستور kill برای بستن اضطراری برنامهها استفاده کنید. البته در اینجا شما باید شمارۀ فرآیند (PID) را به دستور kill بدهید تا او برای شما کاری که میخواهید را انجام دهد. اما اینکه شماره یا شناسۀ فرآیند را چطور به دست آوریم، برای این کار باید از دو دستور top و ps استفاده کنید.
دستور top
دستور ps که مختص کنترل فرایندها است. اما دستور top که یکی از برنامه های پیش فرض و مهم لینوکس به حساب میآید، یک برنامۀ پویای مدیریت نرم افزارهای در حال اجرا و فرآیندهای آنها است. از اینجا هم میتوانید آن شناسۀ هر فرآیند را به دست آورده و برای بستن آن با دستور kill استفاده کنید.
خود برنامۀ top شامل بخشها و قسمتهای مختلفی است که لازم است برای کار کردن با آن یک مقالۀ دیگر را برای شما بنویسم. اما همین الان این دستور را در خط فرمان لینوکس وارد کنید تا ببینید شکل و شمایل نتیجۀ این دستور چطوریاست.
اطلاعاتی که در بالای برنامۀ top به شما نشان داده میشود، در دستورات دیگری هم مثل دستور free موجود بود. در اینجا هم تکرار شدند. علاوه بر آن به صورت پویا فرآیندهای در حال اجرا به همراه اطلاعات در فرآیند را در پایین به صورت فهرستی مشاهده میکنید که اطلاعاتی بسیار عالی است. به نوعی میتوان گفت این برنامه حکم همان Task Manager در ویندوز را دارد. البته برنامههای پیشرفتۀ دیگری مثل htop هم وجود دارد که شما قادر به نصب کردن آنها روی سرور لینوکس خود هستید که ابزارهای بسیار حرفهای را در خود گنجاندهاند. با آموزشهای بعدی ما همراه باشید تا آنها را هم خدمت شما معرفی کنیم.
در ستون اول از سمت چپ شما شمارۀ PID یا همان شناسۀ فرآیندها را میبینید که اگر این شناسه را بردارید و با دستور kill به صورت زیر استفاده کنید، آن فرآیند ختم خواهم شد.
kill 1462
خوب، دستور بالا فرآیند ssh را ختم میکنم که همان برنامۀ ssh برای دسترسی از طریق پروتکل ssh به سرور لینوکس است. پس زمانی که من این دستور را میزنم، دسترسی من به خط فرمان لینوکس قطع خواهد شد. البته این فرآیند را در تصویر نتیجۀ top در بالا نمیبینید. بلکه این فرآیند در گاهی از اوقات ممکن است بیکار باشد و به انتهای فهرست فرآیندها برود و دیده نشود. این مساله ممکن است برای هر فرآیندی در برنامۀ top پیش آید.
در بسته هر برنامه ای با استفاده از دستور kill نهایت دقت را داشته باشید. چرا که ممکن است با بستن فرآیندهای حیاتی سیستم، سرور دچار اختلال شود. در ضمن فرآیندهایی هم وجود دارند که برای ارائه خدمات به بازدید کنندگان سایتهای شما کاربرد دارند. مثل فرآیندهای مرتبط با سرور DNS یا سرور وب که آنها هم باید همیشه در حال اجرا باشند. حالا اینکه این برنامهها چه هستند و چه طور کار میکنند در آموزشهای بعدی به آنها اشاره خواهم کرد.
دستور ps
دستور دیگری که می توانید از آن برای بستن هر فرآیند یا برنامه استفاده کنید، ps است. همین الان این دستور را بزنید و نتیجهای که به شما بر خواهد گشت، شامل تنها فرآیندهایی است که شما صاحب آن هستید. پس در هر زمان هر کاربر سیستم میتواند فرآیندهای خاص خودش را با دستور ps شاهد باشد و PID هر فرآیند را به دست آورد.
اگر میخواهید به همراه نتیجۀ دستور ps میزان حافظۀ RAM که هر فرآیند استفاده کرده به شما برگردانده شود، باید از مشخصۀ m هم استفاده کنید.
ps -m
در نهایت دستور kill میتواند سیگنالهای زیادی را به هستۀ لینوکس برای ختم کردن یک برنامه ارسال کند. هر سیگنال میتواند معنای متفاوتی داشته باشد که این سیگنالها به صورت یک عدد معمولاً از ۱ ت ۶۴ متفاوت است و هر کدام معنایی دارند. مثلاً در خیلی از مواقع برای بسته شدن کامل یک فرآیند باید از سیگنال ۹ به این صورت استفاده کنید:
kill -9 1234
که به جای ۱۲۳۴ باید شناسه فرآیند را وارد کنید. این بود از مدیریت فرآیندها که در خیلی از مواقع نیاز است با دستورات مرتبط با آنها آشنا باشیم. که مهمترین آن دستورات ps و kill است. البته این دستورات کاربردهای بسیار زیادی دارند. در هر صورت قبل از اینکه وارد مباحث اصلیتر مدیریت سرور لینوکس برای راه اندازی سایت روی آنها بشویم، بهتر است این موضوعات را به طور کامل یاد بگیرید که فکر نکنم با توضیحات روانی که داده شده، کار سختی باشد. همچنان همراه باشید.
عالی بود