از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
مدیریت فرآیندها در لینوکس اوبونتو
سرفصلهای مطلب
مدیریت فرآیندها در لینوکس موضوع مهمی برای یادگیری و درک است، زیرا یک سیستم عامل چندوظیفه ای است و فرآیندهای زیادی در آن زمان در حال انجام است. لینوکس ابزارهای زیادی را برای مدیریت فرآیندها فراهم می کند، مانند فهرست کردن فرآیندهای در حال اجرا، کشتن فرآیندها، نظارت بر استفاده از سیستم و غیره. در لینوکس، هر process توسط Process ID (PID) آن نشان داده می شود. برخی از ویژگی های دیگر برای وجود دارد process مانند شناسه کاربر و شناسه گروه اگر کاربر یا گروهی را اجرا کند process. گاهی اوقات شما نیاز به کشتن یا تعامل با یک process، بنابراین باید بدانید که چگونه این فرآیندها را مدیریت کنید تا سیستم شما به خوبی اجرا شود. در لینوکس، فرآیندها را می توان با دستوراتی مانند ps, pstree, pgrep, pkill, lsof, top, nice, renice and kill, و غیره.
فرآیندها
اجرای یک نمونه از یک برنامه a نامیده می شود process. در لینوکس، process id (PID) برای نشان دادن a استفاده می شود process که برای هر کسی متمایز است process. دو نوع فرآیند وجود دارد،
- فرآیندهای پس زمینه
- فرآیندهای پیش زمینه
فرآیندهای پس زمینه
فرآیندهای پس زمینه در terminal و توسط خودشان اداره می شوند. اگر شما اجرا کنید process در terminal، خروجی آن در a نمایش داده می شود terminal پنجره، و شما می توانید با آن تعامل داشته باشید، اما اگر نیازی به تعامل با آن ندارید process، می توانید آن را در پس زمینه اجرا کنید. اگر می خواهید اجرا کنید یک process در پسزمینه، فقط علامت & را در انتهای دستور اضافه کنید و در پسزمینه شروع به اجرا میکند. در وقت شما صرفه جویی می کند و می توانید دیگری را شروع کنید process. برای فهرست کردن فرآیندهای در حال اجرا در پسزمینه، از دستور “jobs” استفاده کنید. تمام فرآیندهای در حال اجرا را در پس زمینه نمایش می دهد.
به عنوان مثال، ارتقاء طولانی است process در لینوکس زمان زیادی می برد و اگر می خواهید در حین ارتقاء سیستم کارهای دیگری انجام دهید، از دستور پس زمینه استفاده کنید.
در پس زمینه شروع به اجرا می کند. و شما می توانید در این میان با برنامه های دیگر تعامل داشته باشید. با تایپ این دستور می توانید بررسی کنید که چه تعداد و کدام فرآیند در پس زمینه در حال اجرا هستند.
[1]+ دویدن sudo آپدیت apt-get -y &
فرآیندهای پیش زمینه
تمام فرآیندهایی که در آن اجرا می کنیم terminal به طور پیش فرض به عنوان فرآیندهای پیش زمینه اجرا می شوند. ما می توانیم آنها را با دستورات پیش زمینه و پس زمینه مدیریت کنیم.
شما می توانید هر پس زمینه ای را بیاورید process با تایپ کردن فرمان “fg” و پسزمینه، در شغلها در پیشزمینه فهرست میشوند process عدد.
sudo آپدیت apt-get -y
و اگر می خواهید این را بگیرید process در پس زمینه این دستور را تایپ کنید.
فهرست کردن و مدیریت فرآیندها با دستور ps
فهرست process با دستور ps یکی از قدیمی ترین راه ها برای مشاهده است terminal فرآیندهای در حال اجرا دستور ps را تایپ کنید تا لیست کنید که کدام فرآیندها در حال اجرا هستند و چه مقدار از منابع سیستمی استفاده می کنند و چه کسی آنها را اجرا می کند.
PID کاربر %CPU %فرمان زمان شروع MEM VSZ RSS TTY
جیم 1562 0.0 0.0 164356 6476 tty2 Ssl+ 13:07 0:00 پوسته
جیم 1564 5.2 0.9 881840 78704 tty2 Sl+ 3:07 13:13 داوث
جیم 2919 0.0 0.0 11328 4660 امتیاز/0 Ss 13:08 0:00 bash
جیم 15604 0.0 0.0 11836 3412 امتیاز/0 R+ 17:19 0:00 ps تو
… برش …
ستون کاربر نام کاربری را در جدول بالا و PID نشان می دهد process شناسه. می توانید از PID برای کشتن یا ارسال سیگنال کشتن به a استفاده کنید process. %CPU پردازنده درصد CPU را نشان می دهد و %MEM میزان استفاده از حافظه با دسترسی تصادفی را نشان می دهد. برای کشتن یک process، نوع
یا
از دستور ps aux برای مشاهده تمام فرآیندهای در حال اجرا استفاده کنید و یک لوله اضافه کنید تا به ترتیب آن را ببینید.
اگر میخواهید ستونها را دوباره مرتب کنید، میتوانید با اضافه کردن یک پرچم این کار را انجام دهید -e برای فهرست کردن تمام فرآیندها و -o برای نشان دادن ستون ها با کلمات کلیدی در دستور ps.
UID کاربر PID %CPU %دستور MEM VSZ RSS
1 root 0 0.1 0.1 167848 11684 سیستم شده
3032 جیم 1000 16.5 4.7 21744776 386524 کروم
… برش …
گزینه های دستور ps.
گزینه u برای لیست کردن فرآیندها توسط کاربران استفاده می شود.
گزینه f برای نمایش لیست کامل استفاده می شود.
گزینه x برای نمایش اطلاعات در مورد استفاده می شود process بدون یک terminal.
گزینه e برای نمایش اطلاعات گسترده استفاده می شود.
یک گزینه برای لیست کردن تمام فرآیندها با استفاده می شود terminal.
گزینه v برای نمایش فرمت حافظه مجازی استفاده می شود.
پرچم برای دستور ps.
پرچم -e برای دیدن هر مورد استفاده می شود process روی سیستم.
پرچم -u برای مشاهده فرآیندهای در حال اجرا به عنوان استفاده می شود root.
پرچم -f برای فهرست کامل فرآیندها استفاده می شود.
پرچم -o برای فهرست کردن فرآیندها در ستون مورد نظر استفاده می شود.
pstree
pstree دستور دیگری برای فهرست کردن فرآیندها است. خروجی را در قالب درختی نشان می دهد.
گزینه هایی برای دستور pstree
-n برای مرتب سازی فرآیندها بر اساس PID استفاده می شود.
-اچ برای برجسته کردن فرآیندها استفاده می شود.
ubuntu@ubuntu:~$ pstree -اچ 6457
-آ برای نمایش خروجی از جمله استفاده می شود command-line استدلال ها
-g برای نمایش فرآیندها توسط شناسه گروه استفاده می شود.
-s برای کاشت درخت یا خاص استفاده می شود process.
ubuntu@ubuntu:~$ pstree -s 6457
[userName] برای نمایش فرآیندهای متعلق به یک کاربر استفاده می شود.
ubuntu@ubuntu:~$ pstree جیم
pgrep
با دستور pgrep می توانید یک در حال اجرا را پیدا کنید process مستقر روی معیارهای خاص می توانید از نام کامل یا مخفف آن استفاده کنید process برای پیدا کردن یا با نام کاربری یا سایر ویژگی ها. دستور pgrep از الگوی زیر پیروی می کند.
ubuntu@ubuntu:~$ pgrep -u جیم کروم
گزینه ها برای pgrep فرمان
-من برای جستجوی حروف غیر حساس استفاده می شود
-د برای تعیین حدود خروجی استفاده می شود
-u برای یافتن استفاده می شود process متعلق به یک کاربر
-آ برای فهرست کردن فرآیندها در کنار دستورات آنها استفاده می شود
-ج برای نمایش تعداد فرآیندهای تطبیق استفاده می شود
-ل برای فهرست کردن فرآیندها و نام آنها استفاده می شود
با دستور pkill می توانید سیگنالی را به در حال اجرا ارسال کنید process مستقر روی معیارهای خاص می توانید از نام کامل یا مخفف آن استفاده کنید process برای پیدا کردن یا با نام کاربری یا سایر ویژگی ها. دستور pgrep از الگوی زیر پیروی می کند.
ubuntu@ubuntu:~$ Pkill -9 کروم
گزینه ها برای pkill فرمان
-علامت برای ارسال سیگنال به عنوان مثال SIGKILL، SIGTERM و غیره استفاده می شود.
-HUP برای بارگذاری مجدد a استفاده می شود process
-ف برای کشتن فرآیندهای مبتنی بر استفاده می شود روی کامل command-line.
-u برای از بین بردن تمام فرآیندهای متعلق به یک کاربر استفاده می شود.
-من برای قتل غیر حساس مورد استفاده قرار می گیرد process توسط pkill.
-9 برای ارسال سیگنال کشتن استفاده می شود.
-15 برای ارسال سیگنال پایان استفاده می شود.
lsof (لیست فایل های باز)
این command-line ابزار برای فهرست کردن فایل هایی که توسط چندین فرآیند باز می شوند استفاده می شود. و همانطور که می دانیم، همه سیستم های یونیکس/لینوکس همه چیز را به عنوان یک فایل تشخیص می دهند، بنابراین استفاده از دستور lsof برای فهرست کردن همه فایل های باز شده راحت است.
در جدول بالا دستور lsof، FD نشان دهنده شرح فایل، cwd نشان دهنده دایرکتوری کاری فعلی، txt به معنی فایل متنی، mem به معنای فایل های دارای نقشه حافظه، mmap به معنای دستگاه های دارای نقشه حافظه، REG نشان دهنده یک فایل معمولی، DIR نشان دهنده دایرکتوری، rtd است. به معنای root فهرست راهنما. گزینه های دیگری نیز وجود دارد که می توانید با دستور lsof استفاده کنید.
گزینه هایی برای دستور lsof.
-ج برای فهرست کردن فایل های باز توسط آنها استفاده می شود process نام.
-u برای فهرست کردن فایل های باز توسط کاربر استفاده می شود.
-من برای فهرست کردن فرآیندهای در حال اجرا استفاده می شود روی یک بندر
+دی برای فهرست کردن فایل های باز تحت یک فهرست استفاده می شود.
-پ برای فهرست کردن فایل های باز توسط a استفاده می شود process.
فهرست و مدیریت فرآیند با دستور بالا
با دستور top، می توانید یک نمای زمان واقعی از فرآیندهای در حال اجرا سیستم را نمایش دهید. این فرآیندها را بسته به استفاده از CPU نمایش می دهد. شما می توانید ستون را بر اساس خود مرتب کنید. دستور top همچنین اطلاعاتی در مورد سیستم شما ارائه می دهد، مانند مدت زمانی که سیستم در حال اجرا بوده است یا تعداد کاربرانی که به سیستم متصل شده اند و تعداد فرآیندهایی که در حال اجرا هستند، چه مقدار CPU و RAM استفاده می شود، و فهرستی از هر کدام. process.
دستور بالا را تایپ کنید تا فرآیندهای در حال اجرا فهرست شوند.
وظایف: 291 جمع، 1 دویدن، 290 خوابیدن، 0 متوقف شد، 0 زامبی
%CPU(س) : 2.3us، 0.3sy، 0.0ni، 97.0id، 0.3wa، 0.0hi، 0.0si، 0.0st
MiB Mem: 7880.6 جمع، 1259.9 رایگان، 3176 استفاده شده، 3444.4 گاومیش/حافظه پنهان
مبادله MiB: 2048.0 جمع، 2048.0 رایگان، 0.0 استفاده شده. 4091.8 فایده Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME + فرمان
3241 جیم 20 0 20.7 گرم 33512 10082 اس 1.7 4.2 0:54.24 کروم
3327 جیم 20 0 4698084 249156 86456 اس 1.3 3.1 1:42.64 کروم
2920 جیم 20 0 955400 410868 14372 اس 1.0 5.1 7:51.04 کروم
3423 جیم 20 0 4721584 198500 10106 اس 1.0 2.5 0:49.00 کروم
3030 جیم 20 0 458740 114044 66248 اس 0.7 1.4 3:00.47 کروم
3937 جیم 20 0 4610540 104908 72292 اس 0.7 1.3 0:05.91 کروم
1603 جیم 20 0 825608 67532 40416 اس 0.3 0.8 3:13.52 Xorg
1756 جیم 20 0 4154828 257056 10060 اس 0.3 3.2 5:53.31 gnome-s+
1898 جیم 20 0 289096 29284 5668 اس 0.3 0.4 1:06.28 فوسوما
3027 جیم 20 0 587580 14304 75960 اس 0.3 1.8 9:43.59 کروم
3388 جیم 20 0 4674192 156208 85032 اس 0.3 1.9 0:13.91 کروم
3409 جیم 20 0 4642180 140020 87304 اس 0.3 1.7 0:15.36 کروم
3441 جیم 20 0 16.5 گرم 156396 89700 اس 0.3 1.9 0:25.70 کروم
….قطع….
همچنین می توانید با دستور top برخی از اقدامات را برای ایجاد تغییرات در فرآیندهای در حال اجرا انجام دهید. در اینجا لیست زیر است.
- تو با فشار دادن “u” می توانید a را نمایش دهید process توسط یک کاربر خاص اجرا می شود.
- م با فشار دادن “M” می توانید به جای استفاده از CPU، میزان مصرف رم را ترتیب دهید.
- پ با فشار دادن “P” می توانید بر اساس میزان استفاده از CPU مرتب کنید.
- 1 با فشار دادن “1” بین استفاده از CPU ها در صورت وجود بیش از یک سوئیچ.
- آر با فشار دادن “R” می توانید مرتب سازی خروجی خود را معکوس کنید.
- ساعت با فشار دادن “h” می توانید به کمک بروید و هر کلیدی را برای بازگشت فشار دهید.
توجه داشته باشید که process حافظه یا CPU بیشتری مصرف می کند. فرآیندهایی که حافظه بیشتری مصرف میکنند میتوانند از بین بروند، و آن فرآیندهایی که CPU بیشتری مصرف میکنند میتوانند کاهش یابند تا اهمیت کمتری به پردازنده داده شود.
یک را بکش process در بالا: مطبوعات ک و Process ID را که می خواهید بکشید بنویسید. سپس 15 یا 9 را تایپ کنید تا به طور معمول یا فوری بکشید. شما همچنین می توانید یک را بکشید process با دستور kill یا killall.
رنیس الف process در بالا: مطبوعات r و PID آن را بنویسید process میخوای ناراحت بشی از شما می خواهد که PID آن را تایپ کنید process و سپس ارزش زیبایی که می خواهید به آن بدهید process بین 19- تا 20 (-19 به معنای بالاترین اهمیت و 20 به معنای کمترین اهمیت است).
فهرست و مدیریت فرآیندها با مانیتور سیستم
لینوکس دارای یک گنوم مانیتور سیستم است تا فرآیندهای در حال اجرا را به صورت پویاتر نشان دهد. برای راه اندازی مانیتور سیستم، کلید ویندوز را فشار دهید و مانیتور سیستم را تایپ کنید، کلیک کنید روی نماد آن است و می توانید فرآیندها را در ستون ها مشاهده کنید. با کلیک راست روی آنها، میتوانید آنها را بکشید، متوقف کنید یا از بین ببرید process.
فرآیندهای در حال اجرا با حساب های کاربری به ترتیب حروف الفبا نمایش داده می شوند. می توانید فرآیندها را بر اساس هر عنوان فیلد مانند CPU، Memory و غیره مرتب کنید، فقط کلیک کنید روی آنها، و آنها مرتب خواهند شد. برای مثال کلیک کنید روی سی پی یو ببینیم کدوم process بیشترین قدرت CPU را مصرف می کند. برای مدیریت فرآیندها، کلیک راست کنید روی آنها را انتخاب کنید و گزینه ای را که می خواهید با آن انجام دهید انتخاب کنید process. برای مدیریت process گزینه های زیر را انتخاب کنید
- خواص- نمایش سایر تنظیمات مربوط به a process.
- نقشه های حافظه – نقشه های حافظه سیستم را نشان می دهد تا نشان دهد کدام کتابخانه و سایر مؤلفه ها در حافظه برای آن استفاده می شوند process.
- باز کردن فایل- نشان می دهد که کدام فایل ها توسط process.
- تغییر اولویت- یک نوار کناری را نمایش می دهد که از آن می توانید renice کنید process با گزینه های بسیار زیاد تا خیلی کم و سفارشی.
- متوقف کردن- مکث می کند process تا زمانی که ادامه را انتخاب کنید.
- ادامه هید- یک مکث مجدد راه اندازی می کند process.
- کشتن- زور الف را می کشد process فورا.
کشتن الف process با کشتن و کشتن
kill و دستور killall برای کشتن/پایان دادن به اجرا استفاده می شود process. این دستورات همچنین می توانند برای ارسال یک سیگنال معتبر به یک در حال اجرا استفاده شوند processمثل گفتن الف process برای ادامه، پایان یا بازخوانی فایلهای پیکربندی و غیره. سیگنالها را میتوان به هر دو صورت با اعداد یا نام نوشت. در زیر برخی از سیگنال های رایج استفاده می شود.
شرح شماره سیگنال
SIGINT 2 از صفحه کلید تفسیر شده است.
SIGQUIT 3 از صفحه کلید خارج شوید.
SIGILL 4 دستورالعمل های غیرقانونی.
SIGTRAP 5 برای ردیابی یک تله استفاده می شود.
SIGABRT 6 برای سقط کردن سیگنال از abort (3) استفاده می شود.
SIGKILL 9 برای ارسال سیگنال کشتن استفاده می شود.
SIGTERM 15 برای ارسال سیگنال پایان استفاده می شود.
SIGCONT 19,18,25 برای ادامه a استفاده می شود process اگر متوقف شود
SIGSTOP 17،19،23 برای توقف فرآیندها استفاده می شود.
مقادیر مختلف SIGCONT و SIGSTOP در سیستم عامل های مختلف یونیکس/لینوکس استفاده می شود. برای اطلاعات دقیق در مورد سیگنال ها، سیگنال man 7 را تایپ کنید terminal.
استفاده از دستور kill برای ارسال سیگنال به پردازش توسط PID.
توجه داشته باشید که process که می خواهید یک سیگنال کشتن به آن ارسال کنید. می توانید پیدا کنید process شناسه (PID) توسط ps یا دستور بالا.
7780 جیم 20 0 12596 4364 3460 آر 33.3 3.2 13:54:12 بالا
بالاترین process 33.3 درصد از CPU را مصرف می کند. اگه میخوای اینو بکشی process برای صرفه جویی در مصرف CPU، در اینجا چند راه برای پایان دادن به این کار وجود دارد process با دستور کشتن
ubuntu@ubuntu:~$ کشتن -15 7780 یا دلار کشتن -SIGTERM 7780
ubuntu@ubuntu:~$ کشتن -9 7780 یا دلار کشتن -SIGKILL 7780
استفاده از دستور killall برای ارسال سیگنال به یک فرآیند با نام.
با دستور killall، نیازی به جستجو نیست process شناسه؛ شما می توانید یک سیگنال کشتن به a ارسال کنید process با نام به جای process شناسه. همچنین اگر مراقب نباشید، میتواند فرآیندهای بیشتری را از آنچه شما میخواهید از بین ببرد، به عنوان مثال، «killall chrome» همه فرآیندهای کروم، از جمله آنهایی را که نمیخواهید بکشید، از بین میبرد. گاهی اوقات کشتن فرآیندهایی با همین نام مفید است.
مانند دستور kill، می توانید سیگنال ها را با نام یا شماره در دستور killall تایپ کنید. هر دویدن را بکش process با دستور killall؛ شما فقط باید نام آن و سیگنالی را که می خواهید ارسال کنید تایپ کنید. به عنوان مثال، یک سیگنال کشتن ارسال کنید process فایرفاکس با استفاده از دستور killall دستور زیر را بنویسید.
یا
تغییر دادن process اولویت با خوب و renice
هر process روی سیستم لینوکس شما ارزش بسیار خوبی دارد و بین -19 تا 20 است process دسترسی بیشتری به CPU در سیستم خواهد داشت. هرچه مقدار nice کمتر باشد، دسترسی بیشتر a process به CPU دارد process. مانند -16 مقدار nice دسترسی بیشتری به CPU نسبت به 18 مقدار خوب دارند. فقط یک کاربر با root امتیازات می توانند مقدار منفی nice را به خود اختصاص دهند. یک کاربر معمولی فقط می تواند مقدار “nice” را بین 0 تا 19 اختصاص دهد. یک کاربر معمولی فقط می تواند مقادیر خوب بالاتر را اختصاص دهد و روی فرآیندهای خودش آ root کاربر می تواند هر مقدار خوب را برای هر یک تعیین کند process.
اگر می خواهید بدهید یک process برای استفاده از CPU با اختصاص مقدار nice، دستور زیر را تایپ کنید.
و renice process
نتیجه
در اینجا راهنمای مدیریت سیستم لینوکس با استفاده از ps، top، lsof، pstree، pkilll، kill، killall، nice، renice و غیره است. دانستن روش مدیریت آنها سرعت و عملکرد سیستم شما را افزایش می دهد و محیط بهتری را برای اجرای هر فرآیندی که می خواهید با کارایی بیشتری در اختیار شما قرار می دهد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-01-03 07:23:03