دوستان و علاقمندان به مباحث آموزش یونیکس (UNIX) ، این آموزش را از سایت پی وی لرن دنبال خواهیم نمود. مدیریت Process ها در یونیکس (UNIX) را در بخش قبل آغاز نمودیم. در این بخش نیز این مبحث را ادامه می دهیم.
مدیریت Process ها در یونیکس (UNIX) را با پروسس Stopping آغاز می کنیم.
پایان دادن (Ending) به یک پروسس می تواند به چندین روش مختلف انجام شود. اغلب ، از یک فرمان مبتنی بر کنسول ، ارسال CTRL + C keystroke (کاراکتر قطع پیش فرض) دستور خارج می شود. این کار زمانی انجام می شود که پروسس در حالت foreground اجرا شود.
اگر یک پروسس در background در حال اجرا است ، باید شناسه کار خود را با استفاده از دستور ps دریافت کنید. پس از آن ، می توانید از دستور kill برای از بین بردن پروسس به شرح زیر استفاده کنید.
1 2 3 4 5 6 7 8 | $ps -f UID PID PPID C STIME TTY TIME CMD amrood 6738 3662 0 10:23:03 pts/6 0:00 first_one amrood 6739 3662 0 10:22:54 pts/6 0:00 second_one amrood 3662 3657 0 08:10:53 pts/6 0:00 -ksh amrood 6892 3662 4 10:51:50 pts/6 0:00 ps -f $kill 6738 Terminated |
در این جا ، دستور kill فرآیند first_one را خاتمه می دهد. اگر پروسس یک دستور kill معین را نادیده بگیرد ، می توانید از kill -9 و به دنبال آن ID پروسس به شرح زیر استفاده کنید.
1 2 | $kill -9 6738 Terminated |
هر پروسس یونیکس دارای دو ID است که به آن اختصاص داده می شوند: (Process ID (pid و (Parent process ID (ppid. هر پروسس کاربر در سیستم یک پروسس اصلی دارد.
بیش تر دستوراتی که شما اجرا می کنید دارای شل به عنوان والدین شان دارند. مثال ps -f را که در آن این دستورالعمل هم با شناسه پردازش و هم با process ID و هم با parent process ID ذکر شده است را بررسی کنید.
به طور معمول ، هنگامی که یک پروسس کودک kill می شود ، پروسس والدین از طریق سیگنال SIGCHLD به روز می شود. سپس والدین می توانند کار دیگری انجام دهند یا فرزند خود را در صورت نیاز مجدداً راه اندازی کنند. با این حال ، گاهی اوقات پروسس والدین قبل از kill شدن فرزندانش kill می شود. در این حالت ، “والدین همه ی پروسس ها” ، پروسس init ، به (PPID (parent process ID تبدیل می شود. در بعضی موارد ، این پروسس ها ، پروسس های orphan نامیده می شوند.
هنگامی که یک پروسس kill می شود ، لیست ps ممکن است پروسس را با حالت Z نشان دهد. این یک zombie یا defunct process است. این پروسس مرده است و مورد استفاده قرار نمی گیرد. این پروسس ها با پروسس های orphan متفاوت است. آن ها اجرا را به اتمام رسانده اند اما هنوز هم یک ورودی در جدول پروسس پیدا می کنند.
Daemon، پروسس های background مرتبط با سیستم هستند که غالباً با مجوزهای درخواست های ریشه و خدمات از دیگر فرآیندها اجرا می شوند.
Daemon فاقد ترمینال کنترل کننده است. این نمی تواند dev/tty/ را باز کند. اگر یک “ps -ef” را انجام دهید و به فیلد tty نگاه کنید ، تمام Daemon ها دارای یک ؟ برای Tty هستند.
به طور دقیق ، یک Daemon فرایندی است که در background اجرا می شود و معمولاً منتظر است تا اتفاقی بیفتد که بتواند با آن کار کند. به عنوان مثال ، یک Daemon چاپگر در انتظار دستورات چاپ است.
اگر برنامه ای دارید که خواستار پردازش طولانی مدت است ، پس ارزش آن را دارد که آن را یک Daemon کنید و آن را در background اجرا کنید.
دستور top ابزاری بسیار مفید برای نمایش سریع پروسس های طبقه بندی شده با معیارهای مختلف است.
این یک ابزار تشخیصی تعاملی است که به طور مکرر به روز می شود و اطلاعات مربوط به حافظه فیزیکی و مجازی ، میزان مصرف CPU ، میانگین بارگیری و پروسس های مشغول شما را نشان می دهد.
در این جا سینتکس ساده برای اجرای دستور top و دیدن آمار استفاده از CPU توسط پروسس های مختلف آمده است.
1 | $top |
پروسس های معلق و Background معمولاً از طریق شماره کار (Job ID) دستکاری می شوند. این عدد با process ID فرق می کند و به دلیل کوتاه تر بودن استفاده می شود.
علاوه بر این ، یک Job می تواند شامل چندین پروسس باشد که به صورت موازی در یک سری یا همزمان انجام می شوند. استفاده از Job ID آسان تر از ردیابی فرآیندهای فردی است.
مدیریت Process ها در یونیکس (UNIX) را در این جا به پایان می رسانیم.
مدیریت Process ها در یونیکس (UNIX) را در دو بخش مورد بررسی قرار دادیم. در بخش بعدی در مورد Network Communication صحبت خواهیم نمود. با وب سایت پی وی لرن همراه باشید.