استفاده از دستورات kill و pkill و killall در پردازش های لینوکس

سیستم عامل لینوکس با فرمان Kill به فرایند وپردازش ها خاتمه می هد. این فرمان اجازه می دهد تا پس از یک تغییر عمده / به روز رسانی، بدون نیاز به راه اندازی مجدد سیستم، سرور را ادامه دهید. در اینجا قدرت فوق العاده لینوکس می آید و این یکی از دلایلی است که چرا لینوکس در 90 درصد از سرورها روی این سیاره کار می کند.

فرمان kill یک سیگنال ارسال می کند، یک سیگنال مشخص برای کامل تر شدن به یک فرآیند. دستور kill را می توان به روش های مختلف، به طور مستقیم یا از یک اسکریپت پوسته اجرا کرد.

با استفاده از دستور kill از مسیر /usr/bin شما برخی از ویژگی های اضافی را برای kill یک فرآیند توسط نام فرآیند با استفاده از pkill فراهم می کند. دستورالعمل مشترک برای فرمان kill:

برای یک فرمان kill یک نام سیگنال می تواند باشد:

واضح است که از رفتار فوق SIGTERM پیش فرض و مطمئن ترین راه برای کشتن یک فرآیند است. SIGHUP راه امنتری برای کشتن یک فرآیند به عنوان SIGTERM است. SIGKILL روش بی خطر ترین در میان سه مورد است، برای کشتن یک فرآیند که فرآیند را بدون صرفه جویی متوقف می کند.

برای اینکه یک فرایند را متوقف کنیم، باید ID فرایند را بدانیم. یک فرایند یک نمونه از یک برنامه است. هر بار یک برنامه شروع می شود، به طور خودکار یک PID منحصر به فرد برای این فرآیند تولید می شود. هر فرآیند در لینوکس دارای pid است. اولین فرآیند که هنگام بارگذاری سیستم لینوکس آغاز می شود، فرآیند init است، از این رو در بیشتر موارد از آن مقدار 1 است.

Init فرایند اصلی است و نمی تواند به این شیوه متوقف شود، که این امر باعث می شود که فرایند اصلی به طور تصادفی کشته نشود. Init تصمیم می گیرد و اجازه می دهد تا خود را به کشتن، جایی که کشتن فقط یک درخواست برای خاموش شدن است.

برای دانستن تمام فرایندها و در نتیجه آنها pid، اجرا می شود.

چگونگی سفارشی کردن خروجی بالا با استفاده از نحو به عنوان فرایند pidof.

راه دیگری برای دستیابی به هدف فوق اجرای دستور زیر است.

قبل از اینکه ما قدم بزرگی برداریم و یک فرمان kill را اجرا کنیم، بعضی نکات مهم باید توجه کرد:

  • یک کاربر می تواند تمامی فرآیند خود را بکشاند.
  • یک کاربر نمیتواند فرآیند کاربر دیگری را بکشد.
  • یک کاربر نمیتواند فرآیندهای سیستم را از بین ببرد.
  • یک کاربر ریشه می تواند روند System-level-process و فرایند هر کاربر را از بین ببرد.

راه دیگری برای انجام همان کار این است که دستور ‘pgrep’ را اجرا کنید.

برای کشتن فرآیند بالا PID، از دستور kill به عنوان نشان داده شده استفاده کنید.

دستور بالا فرآیند با pid = 3139 را جابجا می کند، جایی که PID یک مقدار عددی فرآیند است.

راه دیگری برای انجام همان کار، می تواند به عنوان بازنویسی شود.

به طور مشابه ‘kill -9 PID’ شبیه به ‘kill-SIGKILL PID’ است و بالعکس.

کشتن یک فرایند با استفاده از نام فرایند

قبل از کشتن و ورود به یک نام فرایند اشتباه می بایست از نام پروسه مطلع شوید.

در یک زمان بیش از یک فرآیند را بکشید.

اگر یک پروسه پرونده های بیشماری داشته و تعدادی از پرونده های فرزند داشته باشد، ما یک دستور killall داریم. این تنها فرماندهی این خانواده است که نام فرآیند را به عنوان آرگومان در محل شماره پردازش می گیرد.

برای کشتن تمام نمونه های mysql همراه با فرآیندهای فرزند، از فرمان زیر استفاده کنید.

شما همیشه می توانید وضعیت فرایند را با استفاده از هر یک از فرمان های زیر، اگر در حال اجرا است، بررسی کنید.


شاید این مطالب را هم دوست داشته باشید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *