اطلاعیه

بستن
No announcement yet.

چگونه با استفاده از PID Number نام یک Process را در لینوکس پیدا کنیم

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    چگونه با استفاده از PID Number نام یک Process را در لینوکس پیدا کنیم

    در این پست ما به نحوه پیدا کردن نام یک Process از طریق PID آن (Process IDentification Number) میپردازیم قبل از اینکه به اصل موضوع بپردازیم به صورت جزئی درباره نحوه ایجاد پروسس ها و تشخیص آن توسط لینوکس گذری خواهیم انداخت.

    هر زمان که یک یوزر یا سیستم (لینوکس) یک برنامه را بارگذاری میکند کرنل یک Process را ایجاد خواهد کرد. یک پروسس جزئیات اجرایی برنامه مانند دیتای ورودی و خروجی آن، متغییرها و ... را در memory نگه میدارد.

    به صورت کلی از آنجایی که لینوکس یک سیستم عامل Mulitasking است چندین برنامه را به صورت همزمان اجرا میکند و این به این معناست که هر پروسس باید به صورت خاص مشخص شود.

    کرنل هر process را با استفاده از process id (همان PID) شناسایی میکند هر پروسس باید یک PID یونیک از سایر پراسس های دیگر داشته باشد تا از هر خطای اجرایی جلوگیری شود.


    همچنین توصیه میشود مقالات زیر را مطالعه کنید :
    راهنمای دستورات Kill, PKill و Killall برای بستن یک پروسس در لینوکس
    چگونه با استفاده از PID Number نام یک Process را در لینوکس پیدا کنیم
    نحوه پیدا کردن Process های در حال اجرا که CPU و RAM زیادی در Linux مصرف میکنند
    متوقف کردن و غیر فعال کردن سرویس های ناخواسته در لینوکس
    آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس
    چهار راه برای kill نمودن یک فرآیند در گنو/لینوکس
    چه موقعی باید از دستور kill -9 باید استفاده کرد؟
    نحوه Kill کردن Process های بی مسئولیت با استفاده از دستور xkill در لینوکس


    فایل سیستم /proc اطلاعاتی درباره process های در حال اجرای موجود روی سیستم تان ذخیره میکند و شامل دایرکتوری های برای هر process میباشد.

    از دستور ls برای لیست کردن محتوای آنها استفاده کنید. ممکن است لیست بسیار طولانی باشد در نتیجه دستور ls را به دستور less پایپ "|" کنید تا به آسانی بتوانید تمامی محتوای /proc را مشاهده کنید.
    کد PHP:
    ls /proc 
    OR
    ls /proc less 
    کد PHP:
    1     168   2230  25    329   584   7386  83         driver        schedstat
    10    169   2234  2503  33    603   74    830        execdomains   scsi
    1070  17    2247  2507  34    610   7411  833        fb            self
    1081  1702  2256  2523  349   611   7423  836        filesystems   slabinfo
    109   1714  2258  253   35    612   745   839        fs            softirqs
    11    173   2266  2551  36    613   746   84         interrupts    stat
    110   1760  2273  26    362   62    75    844        iomem         swaps
    1188  1763  2278  2688  3642  63    7533  85         ioports       sys
    12    1769  2282  2694  3643  64    7589  86         irq           sysrq
    -trigger
    1204  177   2283  2695  37    6436  76    860        kallsyms      sysvipc
    1209  1773  2285  2698  38    65    7619  87         kcore         thread
    -self
    1254  18    2287  2699  39    66    7689  9          keys          timer_list
    13    1847  2295  27    3974  67    7690  94         key
    -users     timer_stats
    15    1914  23    2702  3976  68    77    977        kmsg          tty
    152   1917  2308  28    4273  6897  7725  981        kpagecgroup   uptime
    153   1918  2309  280   4374  69    7729  987        kpagecount    version
    154   1938  2310  2815  4392  6969  7733  997        kpageflags    version_signature
    155   1956  2311  2817  44    6980  78    acpi       loadavg       vmallocinfo
    156   1981  2315  282   45    7     79    asound     locks         vmstat
    1565  1986  2316  283   4543  70    790   buddyinfo  mdstat        zoneinfo
    1567  1988  2317  29    46    71    8     bus        meminfo
    157   2     2324  2935  461   7102  80    cgroups    misc
    1579  20    2347  2944  4686  72    808   cmdline    modules
    158   2010  2354  3     47    73    81    consoles   mounts
    1584  2043  2436  30    4700  7304  810   cpuinfo    mtrr
    159   2044  2437  3016  5     7311  815   crypto     net
    1590  21    2442  31    515   7322  82    devices    pagetypeinfo
    16    2167  2443  318   5273  7347  820   diskstats  partitions
    160   22    2492  32    5274  7367  823   dma        sched_debug 
    همانطور که در بالا میبینید دایرکتوری های زیادی فایل های اطلاعاتی درباره process های در حال اجرا را در خود ذخیره کرده اند و هر عدد مربوط به یک PID هستش.

    در زیر لیست فایل ها مربوط به پروسس systemd با pid 1 را مشاهده میکند.
    کد PHP:
    ls /proc/
    کد PHP:
    lscannot read symbolic link '/proc/1/cwd'Permission denied
    ls
    cannot read symbolic link '/proc/1/root'Permission denied
    ls
    cannot read symbolic link '/proc/1/exe'Permission denied
    attr        coredump_filter  gid_map    mountinfo   oom_score      schedstat  status
    autogroup   cpuset           io         mounts      oom_score_adj  sessionid  syscall
    auxv        cwd              limits     mountstats  pagemap        setgroups  task
    cgroup      environ          loginuid   net         personality    smaps      timers
    clear_refs  exe              map_files  ns          projid_map     stack      uid_map
    cmdline     fd               maps       numa_maps   root           stat       wchan
    comm        fdinfo           mem        oom_adj     sched          statm 
    شما میتوانید پروسس ها و pid های آنها را با استفاد ه از ابزارهای قدیمی لینوکس همانند ps, top و ابزار نسبتا glances بعلاوه ابزارهای بیشمار زیادی مانیتور کنید.
    کد PHP:
    ps aux 
    کد PHP:
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.0 185728  6268 
    ?        Ss   10:15   0:01 /sbin/init splash
    root         2  0.0  0.0      0     0 
    ?        S    10:15   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/0]
    root         5  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/0:0H]
    root         7  0.0  0.0      0     0 ?        S    10:15   0:09 [rcu_sched]
    root         8  0.0  0.0      0     0 ?        S    10:15   0:00 [rcu_bh]
    root         9  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/0]
    root        10  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/0]
    root        11  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/1]
    root        12  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/1]
    root        13  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/1]
    root        15  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/1:0H]
    root        16  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/2]
    root        17  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/2]
    root        18  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/2]
    root        20  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/2:0H]
    root        21  0.0  0.0      0     0 ?        S    10:15   0:00 [watchdog/3]
    root        22  0.0  0.0      0     0 ?        S    10:15   0:00 [migration/3]
    root        23  0.0  0.0      0     0 ?        S    10:15   0:00 [ksoftirqd/3]
    root        25  0.0  0.0      0     0 ?        S<   10:15   0:00 [kworker/3:0H]
    root        26  0.0  0.0      0     0 ?        S    10:15   0:00 [kdevtmpfs]
    root        27  0.0  0.0      0     0 ?        S<   10:15   0:00 [netns]
    root        28  0.0  0.0      0     0 ?        S<   10:15   0:00 [perf]
    .... 
    همچنین شما process های لینوکس را با استفاده دستور قدیمی top نیز میتوانید مانیتور کنید.
    کد PHP:
    top 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	top-command-process-monitor-linux-zone-forums.PNG
نمایش ها:	1
اندازه:	11.6 KB
شناسه:	21756

    در زیر مانیتور کردن پروسس های لینوکسی را با استفاده از دستور glances (یک ابزار جدید مانیتورینگ realtime پروسس در لینوکس) را مشاهده میکند.
    کد PHP:
    glances 
    برای بزرگتر شدن عکس روی آن کلیک کنید

نام:	Glances-Real-Time-Linux-Processes-Monitoring-linux-zone-forums.png
نمایش ها:	1
اندازه:	39.0 KB
شناسه:	21757


    پیشنهاد میشود مطالعه شود :
    نحوه نصب ابزار glances در سیستم های لینوکسی


    پیدا کردن PID Number پروسس ها

    برای پیدا کردن PID یک پروسس شما میتوانید از pidof (یک دستور ساده برای نمایش pid یک پروسس) استفاده کنید.
    کد PHP:
    pidof firefox
    2523
    pidof python
    2308
    pidof cinnamon
    2295 
    به موضوع اصلی این پست برمیگردیم و فرض میکنیم که شما از قبل pid یک پروسس را میدانید، اکنون شما میتوانید با استفاده از دستور زیر نام آن process را مشاهده کنید.
    کد PHP:
    ps -p PID -o format 
    در دستور بالا :
    -p : برای مشخص کردن PID
    -o : برای فعال کردن یک فرمت user-defined (مشخص شده توسط کاربر)


    پیدا کردن نام Process با استفاده از PID Number

    در این بخش نحوه پیدا کردن نام یک process با استفاده از pid number ان و با کمک فرمت تعریف شده توسط یوزر را مشاهده خواهیم کرد، به طور مثال comm= که به معنای نام کامند و همچنین نام پروسس میباشد.
    کد PHP:
    ps -p 2523 -o comm=
    firefox
    ps -p 2295 -o comm=
    cinnamon 
    برای اطلاعات کاربردی و گزینه های بیشتر به صفحه man دستور ps مراجعه کنید.
    کد PHP:
    man ps 
    اگر شما بخواهید یک پروسس را با استفاده از pid number آن kill کنید پیشنهاد میشود پست زیر را مطالعه فرمایید.
    پیدا کردن و kill کردن process های لینوکسی با استفاده از pid آنها

    اگر شما هر راه بهتری برای پیدا کردن نام یک پروسس با استفاده از pid آن میدانید باعث خوشحالیست که با ما به اشتراک بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 08-10-2017, 11:27 AM.
    Telegram : https://telegram.me/linuxzone

    voip trainer - Asterisk - Elastix - Agi Programming- NewRock

    Voip Expert :ASTERISK-ELASTIX-NewRock Certified-With Experience of Working With
    Sangoma-Digium-Openvox-Synway-Atcom-Quintum Tenor-Polycom-Yealink-Rtx-Snom
    Cisco Collaboration - CME-CUCM-CUPs-CUC-WEBEX
    LPI ( Fundamental - LPI1 and LPI2 ) - Monitoring: ZABBIX-VOIPMONITOR-NAGIOS - CCNA

    Linkedin Profile : https://www.linkedin.com/in/masuma-vahid-26b17b66/

درباره انجمن منطقه لینوکسی ها

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

شبکه های اجتماعی

ایمیل مدیریت

Habili@linux-zone.org

در حال انجام ...
X