دستورfuser(نمایش PID در حال استفاده از یک فایل)
Fuser
ابزاری کاربردی است که نام فایلهایی که کاربران و فرآیندها در حال استفاده هستند را نمایش میدهد.
با این دستور PID
فرآیندی که در حال استفاده از یک فایل است نشان داده میشود.شاخص های مدیریت و مانیتورینگ فرآیندها
هر فایل در خروجی دستور با یک حرف آمده است که این حرف نوعی دسترسی را نشان میدهد.
- c : دایرکتوری جاری یا current Directory
- e : قابل اجرا یا Executable
- f : فایل باز یا Open File
- F : باز شدن فایل برای نوشتن
- r : دایرکتوری root
اگر fuser را به تنهایی اجرا کنید راهنمایی دستور نشان داده میشود ولی اگر آن را به همراه نام یک فایل یا دایرکتوری بیاورید PID فرآیندهایی که در حال استفاده از آن فایل یا دایرکتوری هستند را نشان میدهد. شکل کلی استفاده از آن بصورت زیر است.
fuser <file_name>
به عنوان مثال دستور زیر فرآیندهایی که در حال استفاده از دایرکتوری جاری هستند را نشان میدهد.
fuser .
خروجی دستور بالا
-> $fuser . /home/phoenix: 1275c 1285c 1353c 1357c 1529c 1533c 1538c 1542c 1544c 1546c 1548c 1550c 1551c 1552c 1557c 1562c 1565c 1567c 1568c 1577c 1588c 1596c 1599c 1604c 1615c 1619c 1630c 1645c 1666c 1678c 1681c 1766c 1781c 1785c 1789c 1799c 1805c 1806c 1817c 1830c 1898c 1917c 1931c 1940c 1949c 1956c 1980c 2030c 2053c 2086c 2886c 2891c 3704c 3708c
در خروجی بالا شناسه فرآیند 1275
است و حرف c در آخر آن یعنی دایرکتوری جاری یا Current Directory
حالا با دستور_ps میتوانیم بفهمیم که فرآیندی با شناسه 1275
متعلق به چیست؟ یعنی کدام فرآیند در حال استفاده از این دایرکتوری است دستور زیر را در خط فرمان اجرا کنید.
ps |grep 1275 |grep -v grep
در مثال ما فرآیند bash
با PID=1275 در حال استفاده کردن از دایرکتوری جاری که در این مثال دایرکتوری خانگی کاربر phoenix
با مسیر home/phoenix/
است.
در دستور زیر میتوانیم فرآیندی که در حال استفاده از فایل var/log/messages/
است را پیدا کنیم.
fuser /var/log/messages
سوئیچ v-
با این سوئیچ اطلاعات کامل تری مانند نام کاربر, شناسه فرآیند, نوع دسترسی و دستوری که اجرا شده را مشاهده نمایید.
fuser -v /var/log
با فرمت زیر میتوانید اطلاعاتی از فرآیندها و Soucket
ها بدست آورید.
fuser -v -n <tcp_or_udp><PORT_NUMBER>
بطور مثال
fuser -v -n udp 53
در مثال بالا یک دستور به نام named
که به عنوان سرویس دهنده DNS
در لینوکس است با مد دسترسی F
و با شناسه 3904
و نام کاربری named
روی پورت 53
در حال کار است
سوئيچ m-
این سوئيچ فرآیندهایی که در حال استفاده از یک سیستم فایل mount
شده را نشان میدهد بطور مثال دستور زیر فرایندهای مرتبط با دیارکتوری usr/
را نشان میدهد.
fuser -m /usr
سوئیچ k-
این سوئیچ برای از بین بردن فرآیندها در حال استفاده از یک برنامه خاص کاربرد دارد برای این منظور باید از فرمت دستوری زیر استفاده کنید.
fuser -v -k <PROGRAM_NAME>
سوئیچ i-
با این سوئیچ میتوانید یک حالت Intarctive
داشته باشید به اینصورت که یک تاییدیه نشان داده میشود و شما با وارد کردن yes
آن را قبول یا با وارد کردن no
آن را رد میکنید.
میتوانید از سوئیچ i- به همراه سوئیچ k- استفاده کنید تا فرآیندهایی را که نمیخواهید kill
کنید با وارد کردن no
از بین نبرید. شکل کلی آن صورت زیر است.
fuser -v -k -i <PROGRAM_NAME>