دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
دانشنامه مارال هاست دانشنامه مارال هاست
دانشنامه مارال هاست دانشنامه مارال هاست
  • صفحه اصلی
  • مقالات
    • هاست اشتراکی
    • دامنه
    • سرور مجازی
    • کنترل پنل سی‌پنل
    • کنترل پنل پلسک
    • کنترل پنل دایرکت ادمین
    • ایمیل
    • CloudLinux
    • Cloudflare
  • تماس با ما
لینوکس
  • Folder icon closed Folder open iconآشنایی با لینوکس (Linux Fundamentals)
  • Folder icon closed Folder open iconتوزیع‌های مختلف لینوکس (Linux Distributions)
  • Folder icon closed Folder open iconFHS؛ آشنایی با ساختار فایل‌ و پوشه‌های لینوکسی
  • Folder icon closed Folder open iconمهم‌ترین دستورات پایه‌ای برای هر sysadmin
  • Folder icon closed Folder open iconمدیریت فایل و پوشه (file & directory management) در لینوکس
  • Folder icon closed Folder open iconآموزش ویرایش فایل‌های متنی در لینوکس با Nano و Vim
  • Folder icon closed Folder open iconآشنایی با users، groups و ساختار مدیریت کاربران در لینوکس
  • Folder icon closed Folder open iconآموزش Permission و Ownership در لینوکس
  • Folder icon closed Folder open iconآشنایی با Root و sudo
  • Folder icon closed Folder open iconآشنایی با Processها در لینوکس
  • Folder icon closed Folder open iconتغییر Hostname در لینوکس
  • Folder icon closed Folder open iconتنظیم Timezone در لینوکس
  • Folder icon closed Folder open iconتنظیم NTP در لینوکس
  • Folder icon closed Folder open iconبروزرسانی سیستم در لینوکس
  • Folder icon closed Folder open iconساخت کاربر جدید در لینوکس
  • Folder icon closed Folder open iconایجاد کاربران و گروه ها در لینوکس
  • Folder icon closed Folder open iconآموزش ACL در لینوکس؛ مدیریت سطح دسترسی پیشرفته برای کاربران و گروه‌ها
  • Folder icon closed Folder open iconآموزش umask در لینوکس؛ تعیین مجوز پیش‌فرض فایل‌ها و پوشه‌های جدید
  • Folder icon closed Folder open iconآموزش فایل sudoers؛ مدیریت دسترسی کاربران به دستورات مدیریتی در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chown در لینوکس
  • Folder icon closed Folder open iconآموزش دستور chmod در لینوکس
  • Folder icon closed Folder open iconSticky Bit در لینوکس چیست؟ آموزش افزایش امنیت پوشه‌های اشتراکی
  • Folder icon closed Folder open iconآموزش SUID در لینوکس؛ اجرای برنامه‌ها با دسترسی مالک فایل
  • Folder icon closed Folder open iconآموزش SGID در لینوکس؛ مدیریت دسترسی گروه‌ها و اجرای برنامه‌ها
  • Folder icon closed Folder open iconآموزش ریست پسورد ubuntu
  • Folder icon closed Folder open iconآموزش ریست پسورد Debian
  • Folder icon closed Folder open iconاگر منابع سرور لینوکسی کامل درگیر شد چکار کنیم ؟
  • Folder icon closed Folder open iconآموزش تست استرس سرور لینوکس
  • Folder icon closed Folder open iconآموزش کامل systemctl
  • Folder icon closed Folder open iconساخت سرویس سفارشی در Systemd
  • Folder icon closed Folder open iconآموزش کامل cron
  • Folder icon closed Folder open iconآموزش کامل OpenSSL در لینوکس
  • Folder icon closed Folder open iconآموزش کامل htop در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور kill در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور df در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور du در لینوکس
  • Folder icon closed Folder open iconآموزش کامل دستور lsblk در لینوکس
  • Folder icon closed Folder open iconآموزش کامل journalctl در لینوکس
  • Folder icon closed Folder open iconپیدا کردن فایل‌های حجیم در لینوکس
  • Folder icon closed Folder open iconپیدا کردن فایل‌های حجیم در لینوکس
  • Folder icon closed Folder open iconپیدا کردن پردازش‌های مصرف‌کننده CPU
  • Folder icon closed Folder open iconTerminal Multiplexer چیست؟ آشنایی با Screen، tmux و ابزارهای مشابه
    • آموزش Screen در لینوکس؛ مدیریت Sessionها و پردازش‌های طولانی
    • آموزش tmux در لینوکس؛ مدیریت Session، Window و Pane
    • اجرای پردازش‌های طولانی پس از قطع SSH با Screen و tmux
    • شخصی‌سازی Screen با فایل .screenrc
    • شخصی‌سازی tmux با فایل .tmux.conf
    • مقایسه Screen و tmux؛ کدام Terminal Multiplexer مناسب‌تر است؟
    • تفاوت nohup، Screen، tmux و systemd؛ کدام روش برای اجرای پردازش‌ها مناسب است؟
  • Folder icon closed Folder open iconتست SMTP در لینوکس به سمت مقصد
  • Folder icon closed Folder open iconآموزش بررسی وضعیت ارسال ایمیل در Track Delivery
  • Folder icon closed Folder open iconآموزش انتقال خودکار ایمیل‌ها به یک پوشه(mailenable , roundcube)
  • Folder icon closed Folder open iconآموزش مسدود کردن یک فرستنده در Webmail (Roundcube و MailEnable)
  • Folder icon closed Folder open iconآموزش تعریف Email Filter در cPanel
  • Folder icon closed Folder open iconآموزش بررسی فایل‌های لاگ در /var/log لینوکس
  • Folder icon closed Folder open iconآموزش grep برای جستجوی خطا در لاگ‌های لینوکس
  • Folder icon closed Folder open iconjournalctl -b؛ بررسی خطاهای Boot در لینوکس
  • Folder icon closed Folder open iconlogrotate؛ مدیریت و چرخش لاگ‌ها در لینوکس
  • Folder icon closed Folder open iconآموزش ریست پسورد centos 7
  • Folder icon closed Folder open iconآموزش ریست پسورد فراموش‌شده root در AlmaLinux 8.7 و AlmaLinux 9.1
  • Folder icon closed Folder open iconچرا در سرور لینوکس فضای دیسک آزاد نمی‌شود؟ آموزش کامل عیب‌یابی فضای Disk
لینوکس

آموزش کامل دستور kill در لینوکس

kill-command-guid

دستور kill در لینوکس برای ارسال Signal به Processها استفاده می‌شود. برخلاف چیزی که از نام آن برداشت می‌شود، kill همیشه به معنی متوقف کردن اجباری Process نیست؛ بلکه می‌توان با آن Signalهای مختلفی مانند SIGTERM، SIGKILL و SIGHUP را به یک Process ارسال کرد.
در این مقاله، نحوه استفاده از دستور kill، پیدا کردن PID، تفاوت Signalها و روش صحیح متوقف کردن Processهای لینوکس را به‌صورت عملی بررسی می‌کنیم.
برای آشنایی با مفهوم PID و Process ابتدا می‌توانید مقاله آشنایی با Processها در لینوکس را مطالعه کنید.


دستور kill چگونه کار می‌کند؟

ساختار کلی دستور:

kill [OPTION] PID

برای مثال:

kill 2456

این دستور به Process دارای PID برابر 2456 یک Signal ارسال می‌کند. اگر Signal مشخص نشود، kill به‌صورت پیش‌فرض Signal زیر را ارسال می‌کند:

SIGTERM

یعنی:

kill 2456

عملاً مشابه دستور زیر است:

kill -TERM 2456

یا:

kill -15 2456

طبق مستندات Linux، Signal شماره 15 همان SIGTERM است و Signal پیش‌فرض ابزار kill محسوب می‌شود.


پیدا کردن PID یک Process

برای استفاده از kill ابتدا باید PID Process موردنظر را پیدا کنید. برای مثال:

ps aux

یا:

ps aux | grep nginx

نمونه خروجی:

root      1200  0.0  0.1  nginx: master process
www-data  1201  0.1  0.3  nginx: worker process
www-data  1202  0.1  0.3  nginx: worker process

عدد ستون دوم PID است. در این مثال :

1200
1201
1202

PID Processهای Nginx هستند.

find-pid

استفاده از pgrep برای پیدا کردن PID

روش ساده‌تر:

pgrep nginx

نمونه خروجی:

1200
1201
1202

برای مشاهده PID همراه با نام Process:

pgrep -a nginx

نمونه:

1200 nginx: master process /usr/sbin/nginx
1201 nginx: worker process
1202 nginx: worker process

متوقف کردن Process با kill

فرض کنیم PID برابر 2456 است. برای درخواست توقف Process:

kill 2456

سپس بررسی کنید Process هنوز وجود دارد یا خیر:

ps -p 2456

اگر Process متوقف شده باشد، معمولاً دیگر در خروجی مشاهده نمی‌شود.

kill-process

SIGTERM چیست؟

SIGTERM Signal شماره 15 است. می‌توانید آن را به چند روش زیر ارسال کنید:

kill 2456
kill -15 2456
kill -TERM 2456
kill -SIGTERM 2456

SIGTERM به Process فرصت می‌دهد قبل از خروج عملیات لازم برای Shutdown را انجام دهد. برای مثال برنامه ممکن است:

  • فایل‌های باز را ببندد.
  • Connectionها را قطع کند.
  • اطلاعات باقی‌مانده را روی Disk بنویسد.
  • Lockها را آزاد کند.
  • Child Processها را مدیریت کند.

به همین دلیل برای توقف معمول یک Process، بهتر است ابتدا از SIGTERM استفاده شود. Signalهایی مانند SIGTERM توسط Process قابل Handle شدن هستند.


SIGKILL چیست؟

SIGKILL Signal شماره 9 است.

kill -9 2456
kill -KILL 2456

این Signal Process را به‌صورت اجباری متوقف می‌کند. برخلاف SIGTERM، Process نمی‌تواند SIGKILL را Catch، Block یا Ignore کند. بنابراین:

kill -9

نباید اولین انتخاب شما باشد.


تفاوت kill و kill -9

دستورSignalرفتار
kill PIDSIGTERMشناسه Process
kill -15 PIDSIGTERMکاربر اجراکننده
kill -9 PIDSIGKILLPriority

در بیشتر شرایط ترتیب مناسب:

kill PID

و اگر Process متوقف نشد:

kill -9 PID

استفاده مستقیم از دستور بالا می‌تواند باعث شود Process فرصت Cleanup نداشته باشد. در بعضی برنامه‌ها ممکن است مشکلاتی مانند:

  • باقی ماندن فایل Lock
  • ناقص ماندن عملیات نوشتن
  • قطع ناگهانی Transaction
  • باقی ماندن فایل موقت
  • قطع Connectionها بدون Cleanup

مشاهده تمام Signalهای kill

برای مشاهده Signalهای قابل استفاده:

kill -l

نمونه‌ای از خروجی:

1) SIGHUP
2) SIGINT
3) SIGQUIT
9) SIGKILL
15) SIGTERM
18) SIGCONT
19) SIGSTOP

شماره دقیق برخی Signalها ممکن است بسته به معماری متفاوت باشد، اما Signalهای استاندارد اصلی مانند SIGKILL=9 و SIGTERM=15 در Linux شناخته‌شده هستند.

Signalشمارهکاربرد رایج
SIGHUP1Reload یا قطع Terminal
SIGINT2Interrupt
SIGQUIT3توقف همراه با Core Dump در شرایط مناسب
SIGKILL9توقف اجباری
SIGTERM15توقف عادی
SIGCONT18ادامه Process متوقف‌شده
SIGSTOP19متوقف کردن موقت Process

SIGKILL و SIGSTOP از Signalهایی هستند که Process نمی‌تواند آن‌ها را Catch یا Ignore کند.


ارسال SIGHUP به Process

یکی از Signalهای کاربردی SIGHUP است. برای مثال:

kill -1 2456

بسیاری از Daemonها از SIGHUP برای Reload کردن Configuration استفاده می‌کنند. اما این رفتار وابسته به برنامه است و باید Documentation همان سرویس بررسی شود. برای سرویس‌های مدیریت‌شده توسط systemd معمولاً استفاده از systemctl روش مناسب‌تری است. برای جزئیات بیشتر به مقاله آموزش کامل systemctl مراجعه کنید.


ارسال SIGSTOP به Process

برای متوقف کردن موقت Process بدون Kill کردن آن:

kill -STOP 2456

Process در حافظه باقی می‌ماند اما Execution آن متوقف می‌شود. برای ادامه فعالیت:

kill -CONT 2456

بررسی وضعیت Process متوقف‌شده

بعد از اجرای دستور kill، دستور زیر را اجرا کنید:

ps -o pid,stat,cmd -p 2456

ممکن است در ستون STAT حرف T مشاهده شود. این وضعیت نشان‌دهنده Process متوقف‌شده است. برای ادامه:

kill -CONT 2456
resume-process

ارسال Signal به چند PID

می‌توانید چند Process را با یک دستور هدف قرار دهید:

kill 1200 1201 1202

این دستور SIGTERM را به هر سه PID ارسال می‌کند.


دستور killall چیست؟

killall به‌جای PID، Processها را با نام هدف قرار می‌دهد. برای مثال :

killall nginx
یا 
killall php-fpm

برای ارسال SIGKILL:

killall -9 nginx

این دستور می‌تواند چند Process با نام مشابه را هم‌زمان متوقف کند، بنابراین قبل از اجرا باید مطمئن شوید چه Processهایی انتخاب خواهند شد.


Kill کردن Processهای یک User

فرض کنید می‌خواهید Processهای متعلق به User زیر را بررسی کنید:

testuser

ابتدا با استفاده از دستور های زیر می‌توانید Process های این User را بررسی کنید:

ps -u testuser
pgrep -u testuser -a

سپس در صورت نیاز می‌توانید از:

pkill -u testuser

استفاده کنید.

نکته) این دستور می‌تواند تمام Processهای آن User را هدف قرار دهد و ممکن است Sessionهای SSH یا سرویس‌های همان User را نیز قطع کند.

قبل از اجرا دقیقاً بررسی کنید چه Processهایی فعال هستند.


خطای Operation not permitted

ممکن است دستور kill را اجرا کنید و و خطای زیر را ببینید:

Operation not permitted

این خطا معمولاً زمانی رخ می‌دهد که User فعلی اجازه ارسال Signal به Process موردنظر را ندارد. برای مثال Process متعلق به Root است. در صورت داشتن sudo:

sudo kill 2456

Zombie Process را می‌توان با kill -9 حذف کرد؟

Zombie Process در واقع Execution خود را تمام کرده اما Parent هنوز Exit Status آن را Collect نکرده است. در ps ممکن است وضعیت Z مشاهده شود. چون Zombie دیگر در حال اجرای واقعی نیست، ارسال:

kill -9 ZOMBIE_PID

معمولاً آن را از Process Table حذف نمی‌کند. باید Parent Process بررسی شود.


جمع‌بندی

دستور kill برای ارسال Signal به Processهای لینوکس استفاده می‌شود و لزوماً به معنی توقف اجباری Process نیست. در حالت عادی:

kill PID

Signal SIGTERM را ارسال می‌کند و روش مناسبی برای درخواست توقف Process است. اگر Process پاسخ ندهد و مطمئن باشید توقف اجباری آن مشکلی ایجاد نمی‌کند، می‌توان از:

kill -9 PID

استفاده کرد.

هنوز نیاز به کمک دارید؟

آیا سوالی دارید؟

آیا این مقاله برای شما مفید بود؟ بله خیر

نظرات خود را بنویسید... لغو پاسخ

اشتراک گذاری این مقاله

آموزش کامل دستور kill در لینوکس

کپی کردن لینک

Clipboard Icon

جدیدترین مقالات

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی ...
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

تقویم

سپتامبر 2026
شیدسچپج
 1234
567891011
12131415161718
19202122232425
2627282930 
« جولای    

عضویت

جدیدترین پست‌ها

آموزش نصب و راه‌اندازی RustDesk Server با Docker
آموزش نصب و راه‌اندازی RustDesk Server با Docker
2 minutes جولای 2, 2026
آموزش نصب و راه‌اندازی Matrix Synapse + Element Web + Coturn با Docker روی Ubuntu 24.04
4 minutes جولای 2, 2026
CXS چیست و چگونه کار می‌کند
1 minute می 3, 2026
ساخت سرور چت المنت بروی لینوکس
5 minutes آوریل 25, 2026
Geo Routing و Geo DNS
2 minutes آوریل 22, 2026

سلام