اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

نحوه استفاده از دستور fuser در لینوکس

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

    نحوه استفاده از دستور fuser در لینوکس

    یکی از مهمترین تسک های مدیران سیستم های لینوکسی، مدیریت process ها میباشد که شامل چندین عملیات تحت مانیتورینگ، سیگنالینگ پروسس ها و تنظیم اولویت بندی process ها روی سیستم میباشد. fuser یکی از ابزارهای ساده اما قدرتمند به منظور یافتن پراسس ها بر اساس فایل ها، دایرکتوری ها یا سوکتی که یک پراسس مشخص قابل دسترسی است میباشد. به عبارت ساده تر این ابزار به یک کاربر سیستمی در تشخیص پراسس ها با استفاده از فایل ها یا سوکت ها کمک میکند.
    دستور fuser در لینوکس




    همچنین توصیه میشود مطالعه کنید :

    پیدا کردن process های در حال اجرا که بیشترین میزان مصرف سی پی یو و مموری را دارند.



    نحوه استفاده از fuser در سیستم های لینوکسی

    ساختار ساده برای استفاده از دستور fuser به شرح زیر است.
    کد PHP:
    # fuser [options] [file|socket]
    # fuser [options] -SIGNAL [file|socket]
    # fuser -l 
    در زیر مثالهایی از دستور fuser به منظور یافتن process ها روی سیستم را مشاهده میفرمایید.



    پیدا کردن Process هایی که به یک دایرکتوری دسترسی دارند

    اجرا کردن دستور fuser بدون هیچ گونه آپشنی، PID های پروسس هایی که در حال حاضر به دایرکتوری جاری شما (current working directory) دسترسی دارند را نمایش خواهد داد.
    کد PHP:
    fuser .
    OR
    fuser /home/tecmint 
    برای مثال :
    کد PHP:
    [root@callcenter ~]# fuser .
    .:                    9288c
    [root@callcenter ~]#
    [root@callcenter ~]# fuser /home/linuxzone/
    /home/linuxzone/:        9288c
    [root@callcenter ~]
    برای یک خروجی واضح تر و با جزییات بیشتر از آپشن -v یا --verbose همانند زیر استفاده میکنیم. در خروجی دستور fuser ابتدا نام دایرکتوری جاری را نمایش میدهد سپس ستون owner پراسس (USER) و سپس در ستون بعد process ID (یا PID) و سپس نوع دسترسی (ACCESS) و سپس نام دستور (COMMAND) را همانند تصویر زیر نمایش میدهد.
    کد PHP:
    fuser -
    مثال :
    کد PHP:
    [root@callcenter]# fuser -v .
                         
    USER        PID ACCESS COMMAND
    .:                   root       9288 ..c.. bash
                         root      11163 
    ..c.. su
                         root      11164 
    ..c.. bash
                         root      11164 
    ..c.. upstart
                         root      11164 
    ..c.. ibus-daemon
                         root      11164 
    ..c.. ibus-dconf
                         root      11164 
    ..c.. gnome-session-b
                         root      11164 
    ..c.. unity-panel-ser
                         root      11164 
    ..c.. gnome-terminal 
    زیر ستون ACCESS شما مشاهده میکنید که نوع دسترسی (access) با استفاده از حروف زیر مشخص شده است.

    c : دایرکتوری جاری (current directory)
    e : یک فایل قابل اجرا (executable) در حال اجرا میباشد.
    f : باز کردن یک فایل که البته f در خروجی موجود نیست.
    F : باز کردن فایل برای نوشتن در آن، که F نیز در خروجی دیده نمیشود.
    r : دایرکتوری root
    m : فایل های mmap شده یا library های به اشتراک گذاشته شده



    پیدا کردن Process هایی که به یک File System دسترسی دارند

    شما با استفاده از دستور زیر میتوانید تشخیص دهید که چه process هایی به فایل ~.bashrc شما دسترسی دارند.
    کد PHP:
    sudo fuser -
    آپشن -m به همراه NAME یا --mount به همراه NAME به معنای نام همه process هایست که به فایل NAME دسترسی دارند. در مواردی که شما دایرکتوری NAME داشته باشید برای استفاده از هر فایل سیستمی که ممکن است روی این دایرکتوری مانت شده باشد، خود به خود به /NAME تغییر میکند.


    همچنین پیشنهاد میشود مقاله زیر را مطالعه کنید :

    آموزش نحوه پیداکردن پروسس در حال اجرا و kill کردن آن در لینوکس



    نحوه Kill کردن و Signal پروسس ها با استفاده از fuser

    در این بخش ما درباره استفاده از fuser به منظور kill کردن و ارسال سیگنال ها به سمت process ها کار میکنیم.

    به منظور kill کردن یک process که به یک file یا socket دسترسی دارد از آپشن -k یا --kill شبیه به زیر استفاده میکنید.
    کد PHP:
    sudo fuser -
    برای اینکه به صورت تعاملی (سوال و پاسخ) یک process را kill کنیم به طوری که از شما برای kill کردن پروسس هایی که به یک فایل یا سوکت دسترسی دارند تاییدیه درخواست شود از آپشن -i یا --interactive استفاده میکنیم.
    کد PHP:
    sudo fuser -ki 
    برای مثال :
    کد PHP:
    [root@callcenter]# fuser -ki .
    .:                    9288c 11163c 11164c
    Kill process 9288 
    ? (y/Ny
    Kill process 11163 
    ? (y/N
    دو دستور قبل تمام process هایی که به دایرکتوری جاری شما دسترسی داشتند را kill خواهد کرد، سیگنال پیشفرضی که به سمت process ها ارسال میشود SIGKILL است، به جزء زمانی که SIGNAL استفاده میشود.


    پیشنهاد میشود مقاله زیر را مطالعه بفرمایید :

    راهنمای دستورات kill, pkill و killall در لینوکس


    شما میتوانید تمام سیگنال ها را با استفاده از آپشن های -l یا --list-signals همانند زیر لیست کنید.
    کد PHP:
    sudo fuser --list-signals 
    برای مثال :
    کد PHP:
    [root@callcenter]# fuser -list-signals
    HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
    STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
    UNUSED
    [root@callcenter]
    بنابراین شما میتوانید یک سیگنال را به process ها همانند دستور زیر ارسال کنید. که SIGNAL میتواند هر سیگنالی که در خروجی بالا لیست شده باشد.
    کد PHP:
    sudo fuser --SIGNAL 
    برای مثال، دستور زیر سیگنال HUP را به همه process هایی که دایرکتوری /boot شما را باز کرده اند ارسال میکند.
    کد PHP:
    sudo fuser --HUP /boot 

    همچنین سعی کنید صفحه man (راهنما) دستور fuser برای آپشن های پیشرفته تر آن و همچنین اطلاعات اضافه و با جزییات بیشتر مطالعه کنید.

    شما میتوانید نظرات ارزشمند خود را درباره این مقاله با ما به اشتراک بگذارید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 02-03-2021, 11:58 AM.
    Instagram : https://www.instagram.com/iranlinuxforum

    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/

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

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

شبکه های اجتماعی
در حال انجام ...
X