جستجو برای:
سبد خرید 0
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
محتوای باز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]
  • خانه
  • کتاب آنلاین
  • درباره سایت
  • درباره لوگو
  • تماس با ما
محتوای باز
  • صفحه اصلی
  • دوره‌های آموزشی
  • وبلاگ
  • درباره ما
  • قوانین و مقررات
  • همکاری با ما
  • تماس با ما
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0
[wcas-search-form]

فرآیندها در خط فرمان لینوکس

24 تیر 1399
ارسال شده توسط فرشید نوتاش حقیقت
خط فرمان، گنو/لینوکس
فرآیندها

همانطور که می‌دانید سیستم‌عامل‌های مدرن به صورت چندوظیفه‌ای عمل می‌کنند؛ به این معنا که با جابه‌جایی دایم بین برنامه‌های در حال اجرا این تصور را ایجاد می‌کنند که چند کار در حال انجام می‌باشد.

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

فرآیندها در لینوکس چگونه کار می‌کنند؟

هنگامی که یک سیستم شروع به کار می‌کند. هسته مرکزی یا همان کرنل (Kernel) فعالیت‌هایی را به عنوان پروسه آغاز کرده و برنامه‌ای با نام init را اجرا می‌کند.

Init نیز به نوبه خود، اسکریپت‌هایی از شل (Shell) را که در مسیر /etc قرار دارند اجرا کرده (به آن‌ها اسکریپت‌های init می‌گویند) که این اسکریپت‌ها نیز سرویس‌های سیستم را آغاز می‌کنند.

بسیاری از این سرویس‌ها به عنوان daemon programs پیاده‌سازی می‌شود، یعنی برنامه‌هایی که مثل روح در پس‌زمینه باقی مانده و وظیفه خود را بدون رابط کاربری انجام می‌دهند.

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

هسته مرکزی اطلاعات هر پروسه را نگهداری می‌کند تا همه چیز سازماندهی شده باشد. برای مثال هر پروسه یک شماره که شناسه پروسه یا Process ID و به اختصار PID را دریافت می‌کند. همچنین کرنل (هسته مرکزی) حافظه‌ای که به هر پردازش اختصاص می‌یابد و آمادگی پردازش برای بازگشت به اجرا را پیگیری می‌کند. قابل توجه است که در لینوکس پروسه‌ها نیز همچون فایل‌ها مالک و شناسه کاربر و … دارند.

نمایش فرآیندها با فرمان ps

رایج‌ترین فرمان برای نمایش فرآیندها فرمان ps است. برنامه ps دارای گزینه‌های زیادی می‌باشد ولی در ساده‌ترین شکل به صورت زیر نمایش داده می‌شود:

[me@linuxbox ~]$ ps
PID TTY TIME CMD
5198 pts/1 00:00:00 bash
10129 pts/1 00:00:00 ps

نتایج در این مثال دو پروسه را نشان می‌دهد با شماره‌های ۵۱۹۸ و ۱۰۱۲۹ که همان پروسه‌های bash و ps هستند. همانطور که می‌بینیم فرمان ps به صورت پیش‌فرض موارد زیادی را نشان نمی‌دهد و فقط پروسه‌هایی که با نشست فعلی ترمینال مرتبط هستند را نشان می‌دهد. برای نشان دادن بایستی گزینه‌های بیشتری را اضافه کنیم ولی قبل از آن نگاهی به دیگر فیلدهایی که توسط فرمان ps تولید شده بیندازیم. TTY مخفف teletype و به معنی دورنگار می‌باشد و اشاره به ترمینال کنترل کننده پروسه‌ها دارد. فیلد TIME مقدار زمان پردازشی استفاده شده از CPU را نشان می‌دهد. همانطور که می‌بینیم هیچ کدام باعث فعالیت زیاد کامپیوتر نمی‌شوند.

اکنون اگر یک گزینه به آن اضافه کنیم، می‌توانیم یک تصویر بزرگتر از کاری که سیستم می‌کند را دریافت کنیم:

[me@linuxbox ~]$ ps x
PID TTY STAT TIME COMMAND
2799 ? Ssl 0:00 /usr/libexec/bonobo-activation-server –ac
2820 ? Sl 0:01 /usr/libexec/evolution-data-server-1.10 --
15647 ? Ss 0:00 /bin/sh /usr/bin/startkde
15751 ? Ss 0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --
15754 ? S 0:00 /usr/bin/dbus-launch --exit-with-session
15755 ? Ss 0:01 /bin/dbus-daemon --fork --print-pid 4 –pr
15774 ? Ss 0:02 /usr/bin/gpg-agent -s –daemon
15793 ? S 0:00 start_kdeinit --new-startup +kcminit_start
15794 ? Ss 0:00 kdeinit Running...
15797 ? S 0:00 dcopserver –nosid
and many more...

با اضافه کردن گزینه x (دقت داشته باشید که این گزینه دارای علامت دش – نمی‌باشد) به فرمان ps می‌گوییم که همه پروسه‌ها (جدای از اینکه ترمینال چه گزینه‌هایی را کنترل کرده) نمایش دهد. وجود علامت سوال (?) در ستون TTY نشانگر این است که ترمینال کنترلی بر روی آن ندارد و با استفاده از این گزینه ما لیست همه پروسه‌هایی که مالک آن هستیم را نشان می‌دهیم.

از آنجایی که سیستم در حال اجرای پروسه‌های زیادی است، فرمان ps لیست بلندی را ایجاد می‌کند. گاهی قرار دادن ps در داخل less نمایش آن را ساده‌تر می‌کند. یک ستون جدید با نام STAT وجود دارد. STAT مخفف واژه انگلیسی state می‌باشد و وضعیت اخیر پروسه را نشان می‌دهد. این کار با استفاده از حروف اختصاری که شرح آن در جدول زیر آمده است صورت می‌گیرد.

وضعیت پروسه ممکن است با کاراکترهای دیگری در دنباله آن همراه شود. این کاراکترها نشانگر مشخصه‌های پروسه‌های خارجی هستند. برای مشاهده جزئیات بیشتر در این مورد به صفحات manual مراجعه کنید.

یکی دیگر از گزینه‌های رایج aux می‌باشد. این گزینه اطلاعات بیشتری را به ما خواهد داد:

[me@linuxbox ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 2136 644 ? Ss Mar05 0:31 init
root 2 0.0 0.0 0 0 ? S< Mar05 0:00 [kt]
root 3 0.0 0.0 0 0 ? S< Mar05 0:00 [mi]
root 4 0.0 0.0 0 0 ? S< Mar05 0:00 [ks]
root 5 0.0 0.0 0 0 ? S< Mar05 0:06 [wa]
root 6 0.0 0.0 0 0 ? S< Mar05 0:36 [ev]
root 7 0.0 0.0 0 0 ? S< Mar05 0:00 [kh]
and many more...

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

هدرمفهوم
USERشناسه کاربر، این مالک پروسه است.
%CPUمیزان استفاده پردازشگر به درصد
%MEMمیزان استفاده حافظه به درصد
VSZاندازه حافظه مجازی
RSSResisent Set Size میزان حافظه فیزیکی رم که پروسه از آن استفاده می‌کند به کیلوبایت
STARTزمانی که پروسه شروع به کار کرده. برای مقادیر بالا 24 ساعت یک تاریخ استفاده می‌شود.

نمایش پویای پردازش‌ها با فرمان top

با وجود اینکه فرمان ps اطلاعات زیادی درباره اینکه سیستم چه می‌کند را به ما می‌دهد وای این فرمان تنها یم تصویر را از وضعیت سیستم در لحظه اجرای فرمان را به ما نشان می‌دهد. برای اینمه نمایشی پویاتر از وضعیت فعالیت‌های ماشین را دریافت کنید، فرمان top گزینه خوبی است. برنامه top یک نمایش دنباله‌دار که در لحظه (به صورت پیش‌فرض هر ۳ ثانیه یکبار) بروزرسانی می‌شود را از وضعیت پروسه‌های سیستم به منظور نمایش فعالیت پروسه‌ها به ما نشان می‌دهد.

نام این فرمان از واقعیت گرفته شده است که از برنامه بالایی برای نمایش پروسه‌های بالایی سیستم استفاده می‌شود. نمایش فرمان top شامل دو بخش است: یک بخش خلاصه سیستم که در بالا وحود دارد و در ادامه آن جدولی از پروسه‌های فعالیت CPU که در ادامه، جدول آن آورده شده است:

[me@linuxbox ~]$ top
top - 14:59:20 up 6:30, 2 users, load average: 0.07, 0.02, 0.00
Tasks: 109 total, 1 running, 106 sleeping, 0 stopped, 2 zombie
Cpu(s): 0.7%us, 1.0%sy, 0.0%ni, 98.3%id, 0.0%wa, 0.0%hi, 0.0%si
Mem: 319496k total, 314860k used, 4636k free, 19392k buff
Swap: 875500k total, 149128k used, 726372k free, 114676k cach
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6244 me 39 19 31752 3124 2188 S 6.3 1.0 16:24.42 trackerd
11071 me 20 0 2304 1092 840 R 1.3 0.3 0:00.14 top
6180 me 20 0 2700 1100 772 S 0.7 0.3 0:03.66 dbus-dae
6321 me 20 0 20944 7248 6560 S 0.7 2.3 2:51.38 multiloa
4955 root 20 0 104m 9668 5776 S 0.3 3.0 2:19.39 Xorg
1 root 20 0 2976 528 476 S 0.0 0.2 0:03.14 init
2 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migratio
4 root 15 -5 0 0 0 S 0.0 0.0 0:00.72 ksoftirq
5 root RT -5 0 0 0 S 0.0 0.0 0:00.04 watchdog
6 root 15 -5 0 0 0 S 0.0 0.0 0:00.42 events/0
7 root 15 -5 0 0 0 S 0.0 0.0 0:00.06 khelper
41 root 15 -5 0 0 0 S 0.0 0.0 0:01.08 kblockd/
67 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 kseriod
114 root 20 0 0 0 0 S 0.0 0.0 0:01.62 pdflush
116 root 15 -5 0 0 0 S 0.0 0.0 0:02.44 kswapd0

بخش خلاصه سیستم شامل اطلاعات مفیدی است که در جدول زیر نمایش داده می‌شود:

سطرفیلدمفهوم
1topنام برنامه
14:59:20زمان فعلی روز
up 6:30این را آپ تایم می‌نامند. که میزان زمان از وقتی است که ماشین آخرین بار بوت شده است. در این مثال 6:30 ساعت روشن بوده است.
2 usersدو کاربر لاگین هستند.
load average:load average اشاره به فرآیندهایی که منتظر اجرا هستند دارند. پس تعداد پروسه‌هایی است که وضعیت قابل اجرا دارند و پردازشگر را به اجرا گذاشته‌اند.

برنامه top دستورات صفحه کلید را قبول می‌کند. دو مورد از مهم‌ترین آن‌ها h است که صفحه راهنمای برنامه را نشان می‌دهد و همچنین q که ما را از برنامه top خارج می‌کند.

محیط‌های دسکتاپ اپلیکیشن‌های گرافیکی را به ما ارائه می‌کند که اطلاعاتی مشابه برنامه top را در اختیار ما قرار می‌دهند (مانند Task Manager در محیط ویندوز). ولی برنامه top بهتر از نسخه‌های گرافیکی می‌باشد. به دلیل اینکه سریع‌تر عمل می‌کند و منابع سیستمی بسیار کمتری را درگیر خود می‌کند. علاوه بر آن، برنامه مانیتوری سیستم ما نبایستی بازدهی سیستمی که در حال بررسی آن هستیم را کاهش دهد.

منبع: لینوکس‌سیزن نوشته فرشید نوتاش حقیقت

برچسب ها: CLICommand Lineخط فرمانخط فرمان لینوکس
درباره فرشید نوتاش حقیقت

همیشه نیازمند یک منبع آموزشی فارسی در حوزه نرم‌افزارهای آزاد/ متن‌باز و سیستم‌عامل گنو/لینوکس بودم. از این رو این رسالت رو برای خودم تعریف کردم تا رسانه «محتوای باز» رو بوجود بیارم.

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

دیدگاهتان را بنویسید لغو پاسخ

این سایت از اکیسمت برای کاهش جفنگ استفاده می‌کند. درباره چگونگی پردازش داده‌های دیدگاه خود بیشتر بدانید.

جستجو
جستجو برای:
دسته‌بندی موضوعی مقالات
  • برنامه‌نویسی
    • پایتون
    • دواپس
  • پایگاه‌داده
    • MariaDB
    • MySQL
  • تجارت الکترونیک
    • بازاریابی اینترنتی
    • دیجیتال مارکتینگ
    • شبکه‌های اجتماعی
  • جامعه کاربری
    • لاگ
  • دسته‌بندی نشده
  • شبکه و امنیت
  • طراحی وب
    • سئو
    • سیستم مدیریت محتوا
      • وردپرس
  • فناوری‌های نوظهور
    • اینترنت اشیاء
    • رایانش ابری
      • OpenStack
    • کلان‌داده‌ها
  • گنو/لینوکس
    • توزیع
      • CentOS
      • اوبونتو
      • دبیان
      • فدورا
    • چیست
    • خط فرمان
  • مهاجرت به آزاد/متن‌باز
  • نرم‌افزار
    • اداری
      • لیبره آفیس
        • ایمپرس
        • بیس
        • دراو
        • رایتر
        • کالک
    • کاربردی
    • گرافیک و انیمیشن
      • بلندر
      • گیمپ
نماد الکترونیکی (اینماد)
پرداخت‌یار

محتوای باز؛ مرجع آموزشی نرم‌افزارهای آزاد/ متن‌باز

از اینکه قصد همکاری با رسانه «محتوای باز» را دارید بسیار خرسندیم و این مایه مباهات ماست.

نحوه همکاری با ما چندان پیچیده نیست و شرایط آن در ادامه، ارائه گردیده است.

دستمزد مدرسین

پیش از بیان شرایط ضبط ویدئو شایان ذکر است اشاره‌ای به دستمزد مدرسین سایت داشته باشیم.

شما ممکن است در دو حالت تمایل به نشر ویدئو خود را داشته باشید: یا آن را رایگان در اختیار عموم قرار دهید و یا اینکه در قبال فروش آن از خریدار وجه مربوطه محصول را اخذ نمایید.

صرف نظر از هر حالت ممکنه، می‌بایست شرایطی که در ادامه ذکر شده‌اند را رعایت کرده باشید.

در حالت اول (رایگان) رسانه محتوای باز (Open Content)، نه وجهی از شما برای نشر ویدئو می‌گیرد و نه وجهی به شما پرداخت می‌نماید و دوره آموزشی شما را به رایگان منتشر می‌کند.

اما در حالت بعدی طریقه همکاری به روش درآمد از فروش خواهد بود، به گونه‌ای که 70 درصد از کل مبلغ فروش دوره آموزشی متعلق به مدرس دوره بوده و 30 درصد مابقی به رسانه محتوای باز تعلق می‌گیرد.

شرایط کلی ضبط دوره آموزشی

دوره آموزشی مربوطه، صرف نظر از هر محتوایی که دارد می‌بایست در یکی از توزیعات گنو/لینوکسی ضبط شده باشد. (به‌عنوان مثال دوره دروپال در اوبونتو، دوره آموزشی کار با آردوینو در دبیان و امثالهم). اگر دوره آموزشی شما در محیط ویندوز و یا هر پلتفرم/سیستم‌عامل دیگری ضبط شده باشد از همکاری با شما معذوریم.

پیشنهاد می‌گردد برای ضبط دوره آموزشی در توزیع گنو/لینوکس از ابزار قدرتمند OBS استفاده نمایید. البته این صرفا یک پیشنهاد است و شما می‌توانید از هر ابزار مناسب دیگری برای این کار بهره ببرید.

برای آشنایی یا تسلط بیشتر می‌توانید دوره رایگان آموزش OBS محمد عابدینی را ببینید:

مشاهده دوره آموزش OBS
شرایط کیفی ضبط دوره آموزشی

کیفیت صدا از اهمیت ویژه‌ای برخوردار می‌باشد و می‌بایست فاقد هر گونه نویز یا صدای اضافی دیگری (صدای محیط پیرامون) باشد.

دوره آموزشی تهیه شده صرفا باید برای رسانه محتوای باز تدوین شده باشد و در هیچ سایت مشابه دیگری قرار نگرفته باشد.

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

دوره آموزشی ضبط شده می‌باید فاقد هر گونه لوگو یا آدرس سایت دیگری (در گوشه تصویر یا بک‌گراند صفحه دسکتاپ و هر جای دیگری) باشد.

در حین دوره، مدرس نباید به برند خاصی اشاره کند که جز رقبای ما به‌شمار می‌آیند.

مدرس باید در ابتدا در اواسط و در انتهای دوره به برند ما یعنی رسانه محتوای باز (Open Content) بصورت کلامی اشاره نماید.

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

قبل از تدوین دوره آموزشی حتما با ما در تماس باشید و یک ویدیوی چنددقیقه‌ای (ترجیحا 5 الی 10 دقیقه)، بصورت نمونه‌کار برای ما بفرستید.

از همکاری با شما سپاسگزاریم.

فراخوان همکاری