| GIT-FSMONITOR--DAEMON(1) | Git Manual | GIT-FSMONITOR--DAEMON(1) |
نام (NAME)
git-fsmonitor--daemon - پایشگر توکار سیستمفایل
خلاصه دستور (SYNOPSIS)
git fsmonitor--daemon start git fsmonitor--daemon run git fsmonitor--daemon stop git fsmonitor--daemon status
توضیحات (DESCRIPTION)
یک دیمن برای پایش تغییرات فایلها و دایرکتوریها در دایرکتوری کاری با استفاده از امکانات اعلان سیستمفایل وابسته به پلتفرم.
این دیمن مستقیماً با دستوراتی مانند git status با استفاده از رابط simple IPC[1] به جای رابط کندتر githooks(5) ارتباط برقرار میکند.
این دیمن در داخل گیت تعبیه شده است تا نیازی به ابزارهای شخص ثالث نباشد.
گزینهها (OPTIONS)
start
run
stop
status
ملاحظات (REMARKS)
این دیمن یک پردازه با اجرای طولانیمدت است که برای پایش یک دایرکتوری کاری منفرد و نگهداری فهرستی از فایلها و پوشههای اخیراً تغییریافته به کار میرود. کارایی دستوراتی مانند git status میتواند افزایش یابد اگر تنها خلاصه تغییرات دایرکتوری کاری را درخواست کنند و از پویش دیسک اجتناب نمایند.
هنگامی که core.fsmonitor روی true تنظیم شود (به git-config(1) مراجعه کنید)، دستوراتی مانند git status تغییرات را از دیمن جویا شده و در صورت لزوم آن را بهطور خودکار راهاندازی میکنند.
برای اطلاعات بیشتر، بخش «File System Monitor» را در git-update-index(1) ببینید.
هشدارها (CAVEATS)
دیمن fsmonitor در حال حاضر اطلاعی از زیرماژولها (submodules) ندارد و رویدادهای سیستمفایل را که درون یک زیرماژول رخ میدهند فیلتر نمیکند. اگر دیمن fsmonitor در حال پایش یک مخزن والد باشد و فایلی در دایرکتوری کاری یک زیرماژول تغییر کند، آن تغییر را (به عنوان تغییری در مخزن والد) گزارش میدهد. با این حال، کلاینت این رویدادهای اضافی را بهدرستی نادیده میگیرد، بنابراین عملکرد ممکن است تحت تأثیر قرار گیرد اما نتیجه نادرستی ایجاد نخواهد شد.
بهطور پیشفرض، دیمن fsmonitor از کار با مخازن متصل به شبکه خودداری میکند؛ این رفتار را میتوان با تنظیم fsmonitor.allowRemote به true نادیده گرفت. با این حال توجه داشته باشید که تضمینی برای کارکرد صحیح دیمن fsmonitor با همه مخازن متصل به شبکه وجود ندارد، بنابراین چنین استفادهای آزمایشی در نظر گرفته میشود.
در Mac OS و لینوکس، ارتباط بینپردازهای (IPC) میان دستورات مختلف گیت و دیمن fsmonitor از طریق سوکت دامنه یونیکس (UDS) — نوع خاصی از فایل — انجام میشود که توسط سیستمفایلهای بومی Mac OS و لینوکس پشتیبانی میشود، اما در سیستمفایلهای متصل به شبکه، NTFS یا FAT32 پشتیبانی نمیشود. سیستمفایلهای دیگر ممکن است پشتیبانی لازم را داشته باشند یا نداشته باشند؛ عملکرد دیمن fsmonitor با این سیستمفایلها تضمین نمیشود و چنین استفادهای آزمایشی تلقی میگردد.
بهطور پیشفرض، سوکت در پوشه .git ایجاد میشود. با این حال، اگر پوشه .git روی یک سیستمفایل متصل به شبکه باشد، به جای آن در $HOME/.git-fsmonitor-* ایجاد میشود، مگر اینکه خود $HOME روی یک سیستمفایل متصل به شبکه باشد که در این صورت باید متغیر پیکربندی fsmonitor.socketDir را روی مسیر پوشهای در یک سیستمفایل بومی برای ایجاد فایل سوکت تنظیم کنید.
اگر هیچکدام از پوشههای بالا (.git، $HOME یا fsmonitor.socketDir) روی یک سیستمفایل بومی نباشند، دیمن fsmonitor خطایی گزارش میدهد که باعث خروج دیمن و دستور در حال اجرای فعلی میشود.
هشدارهای لینوکس (LINUX CAVEATS)
در لینوکس، دیمن fsmonitor از inotify برای پایش رویدادهای سیستمفایل استفاده میکند. سیستم inotify محدودیتهایی به ازای هر کاربر برای تعداد پایشهایی که میتوان ایجاد کرد دارد. حد پیشفرض معمولاً ۸۱۹۲ پایش به ازای هر کاربر است.
برای مخازن بزرگ با پوشههای بسیار، ممکن است نیاز به افزایش این حد داشته باشید. حد فعلی را با دستور زیر بررسی کنید:
cat /proc/sys/fs/inotify/max_user_watches
برای افزایش موقت حد:
sudo sysctl fs.inotify.max_user_watches=65536
برای دائمی کردن تغییر، عبارت زیر را به /etc/sysctl.conf اضافه کنید:
fs.inotify.max_user_watches=65536
پیکربندی (CONFIGURATION)
تمام موارد زیر در این بخش بهصورت گزینشی از مستندات git-config(1) درج شدهاند. محتوا همان چیزی است که در آنجا یافت میشود:
fsmonitor.allowRemote
fsmonitor.socketDir
گیت (GIT)
بخشی از مجموعه git(1)
نکات (NOTES)
- 1.
- simple IPC
| 2026-06-29 | Git 2.55.0 |