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 از کار با مخازن متصل به شبکه خودداری می‌کند. تنظیم fsmonitor.allowRemote روی true این رفتار را نادیده می‌گیرد. تنها در صورتی لحاظ می‌شود که core.fsmonitor روی true تنظیم شده باشد. fsmonitor.socketDir این گزینه ویژه Mac OS و لینوکس، در صورت تنظیم، پوشه‌ای را مشخص می‌کند که در آن سوکت دامنه یونیکس مورد استفاده برای ارتباط بین دیمن fsmonitor و دستورات مختلف گیت ایجاد شود. پوشه باید روی یک سیستم‌فایل بومی قرار داشته باشد. تنها زمانی اعمال می‌شود که core.fsmonitor روی true تنظیم شده باشد. گیت (GIT) بخشی از مجموعه git(1) نکات (NOTES) 1. simple IPC file:///usr/share/doc/git-doc/technical/api-simple-ipc.html Git 2.55.0 2026-06-29 GIT-FSMONITOR--DAEMON(1)