FCRON(8) FCRON(8)

fcron - دیمن اجرای وظایف زمان‌بندی‌شده

fcron [ -c پرونده ] [ -d ] [ -b ] [ -s زمان ] [ -m تعداد ] [ -q تعداد ]

fcron [ -c پرونده ] [ -d ] [ -f ] [ -o ] [ -y ] [ -p پرونده ] [ -l زمان ]

fcron [ -n دایرکتوری ]

fcron [ -h ]

fcron [ -V ]

برنامهٔ Fcron باید از /etc/rc یا /etc/rc.local راه‌اندازی شود. مگر این‌که گزینهٔ -f (یا --foreground) مشخص شده باشد، برنامه بلافاصله بازمی‌گردد، بنابراین نیازی نیست آن را با '&' اجرا کنید.

برنامهٔ Fcron پرونده‌های fcrontab کاربران (به fcrontab(5) مراجعه کنید) را که پیش‌تر توسط fcrontab (به fcrontab(1) مراجعه کنید) نصب شده‌اند، بارگذاری می‌کند. سپس fcron زمان و تاریخ اجرای بعدی هر کار را محاسبه کرده و مشخص می‌کند چه مدت باید به خواب برود، و برای این مدت به خواب می‌رود. هنگامی که بیدار می‌شود، تمام کارهای بارگذاری‌شده را بررسی کرده و در صورت نیاز آن‌ها را اجرا می‌کند. هنگامی که یک کار اجرا می‌شود، fcron منشعب شده (fork می‌کند)، مجوزهای کاربر و گروه خود را به مجوزهای کاربری که کار برای او انجام می‌شود تغییر می‌دهد، آن کار را اجرا کرده و خروجی‌ها را برای کاربر ایمیل می‌کند (این رفتار قابل تغییر است: به fcrontab(5) مراجعه کنید).

پیام‌های اطلاع‌رسانی دربارهٔ آنچه fcron انجام می‌دهد، به syslogd(8) تحت تسهیلات (facility) cron با اولویت notice ارسال می‌شوند. پیام‌های هشدار و خطا نیز به ترتیب با اولویت‌های warning و error فرستاده می‌شوند.

نکته: برنامهٔ fcron پس از راه‌اندازی، حداقل ۲۰ ثانیه پیش از اجرای هر کاری به خواب می‌رود تا از مصرف بیش از حد منابع هنگام بوت سیستم جلوگیری شود.

به پس‌زمینه منشعب نمی‌شود (fork نمی‌کند). در این حالت، fcron پیام‌های اطلاع‌رسانی را افزون بر syslogd در خروجی خطای استاندارد نیز نمایش می‌دهد.
اجرا در پس‌زمینه را تحمیل می‌کند، حتی اگر fcron به‌طور پیش‌فرض برای اجرا در پیش‌زمینه کامپایل شده باشد.
پرونده‌های fcrontab را هر زمان ثانیه یک‌بار بر روی دیسک ذخیره می‌کند (پیش‌فرض ۱۸۰۰ ثانیه است).
حداکثر تعداد کار متوالی (serial) را به‌طور هم‌زمان اجرا می‌کند. به‌طور پیش‌فرض، این مقدار روی ۱ تنظیم شده است.

همچنین ببینید: گزینهٔ serial در fcrontab(5).

اندازهٔ صف‌های مورد استفاده برای مدیریت کارهای متوالی و صف lavg را هر کدام برابر با تعداد تنظیم می‌کند. این بدان معناست که (الف) حداکثر تعداد کار متوالی می‌تواند در وضعیت انتظار باشد و (ب) حداکثر تعداد کار می‌تواند منتظر بماند تا میانگین بار سیستم (load average) به زیر یک مقدار مشخص کاهش یابد.
باعث می‌شود fcron به‌جای پروندهٔ پیکربندی پیش‌فرض /usr/local/etc/fcron.conf، از پروندهٔ پیکربندی پرونده استفاده کند. برای تعامل با فرایند در حال اجرای fcron، برنامهٔ fcrontab نیز باید از همان پروندهٔ پیکربندی استفاده کند (که توسط گزینهٔ -c در fcrontab تعیین می‌شود). به این ترتیب، چند فرایند fcron می‌توانند به‌طور هم‌زمان بر روی یک سیستم اجرا شوند (اما هر فرایند fcron *باید* دایرکتوری اسپول و پروندهٔ pid متفاوتی نسبت به سایر فرایندها داشته باشد).
تمام کارهایی را که در زمان شروع fcron نیاز به اجرا دارند، اجرا کرده، منتظر اتمام آن‌ها می‌ماند و سپس خارج می‌شود. مقدار --sleeptime را برابر با ۰ قرار می‌دهد. این گزینه می‌تواند به‌ویژه هنگامی که به همراه گزینه‌های -y و -f در یک اسکریپت (برای نمونه هنگام اتصال dialup) اجرا می‌شود، بسیار مفید باشد.

همچنین ببینید: گزینه‌های volatile و stdout در fcrontab.

به‌هیچ‌وجه در syslog ثبت وقایع انجام نمی‌دهد. هنگام اجرا در پیش‌زمینه می‌تواند مفید باشد.
در صورت تنظیم، وقایع را در پرونده‌ای که به عنوان آرگومان داده شده ثبت می‌کند. برنامهٔ fcron به‌طور هم‌زمان وقایع را هم در آن پرونده و هم در syslog ثبت خواهد کرد، مگر این‌که گزینهٔ -y نیز تنظیم شده باشد.
تأخیر اولیه (به ثانیه) را پیش از اجرای هر کاری تنظیم می‌کند؛ مقدار پیش‌فرض ۲۰ ثانیه است.
مسیر دایرکتوری را به عنوان یک دایرکتوری اسپول جدید برای fcron ایجاد می‌کند. حالت دسترسی و مالک آن را به‌درستی تنظیم کرده و سپس خارج می‌شود.
نمایش توضیح کوتاهی از گزینه‌ها.
نمایش پیام اطلاعاتی دربارهٔ fcron، شامل نسخهٔ آن و مجوزی که تحت آن منتشر شده است.
اجرا در حالت اشکال‌زدایی (نمایش جزئیات بیشتر در خروجی خطای استاندارد -- در صورتی که گزینهٔ -f تنظیم شده باشد -- و در پروندهٔ لاگ).

برنامهٔ Fcron در صورت خروج عادی مقدار ۰، و در صورت بروز خطا مقدار ۱ را بازمی‌گرداند.

ذخیرهٔ پیکربندی (زمان باقی‌مانده تا اجرای بعدی، زمان و تاریخ اجرای بعدی، و غیره)، صبر برای اتمام تمام کارهای در حال اجرا و سپس خروج.
وادار کردن fcron به بارگذاری مجدد پیکربندی خود.
چاپ زمان‌بندی فعلی fcron در syslog. همچنین چاپ اطلاعات اشکال‌زدایی در syslog را فعال/غیرفعال (toggle) می‌کند.
اطلاع دادن به fcron برای بررسی وجود هرگونه به‌روزرسانی در پیکربندی (این سیگنال توسط fcrontab(1) استفاده می‌شود).
اطلاع به fcron مبنی بر بازگشت سیستم از حالت تعلیق (به حافظه یا دیسک). این کار باعث می‌شود fcron پروندهٔ /usr/local/var/run/fcron.suspend را خوانده و زمان‌بندی وظایف را متناسب با آن به‌روزرسانی کند. توجه داشته باشید که fcron در لینوکس برای تشخیص تعلیق/ازسرگیری نیازی به این سیگنال ندارد.

باید با استانداردهای POSIX سازگار باشد.

/usr/local/etc/fcron.conf
پروندهٔ پیکربندی برای fcron، fcrontab و fcrondyn: شامل مسیرها (دایرکتوری اسپول، پروندهٔ pid) و برنامه‌های پیش‌فرض برای استفاده (ویرایشگر، پوسته و غیره). برای جزئیات بیشتر به fcron.conf(5) مراجعه کنید.
/usr/local/etc/fcron.allow
کاربران مجاز به استفاده از fcrontab و fcrondyn (یک نام در هر خط؛ نام ویژهٔ "all" برای همه اعمال می‌شود).
/usr/local/etc/fcron.deny
کاربرانی که مجاز به استفاده از fcrontab و fcrondyn نیستند (با همان قالب پروندهٔ allow).
/usr/local/etc/pam.d/fcron (یا /usr/local/etc/pam.conf)
پروندهٔ پیکربندی PAM برای fcron. برای جزئیات بیشتر نگاهی به pam(8) بیندازید.
/usr/local/var/run/fcron.suspend
محل پروندهٔ تعلیق fcron برای سیستم‌های غیرلینوکسی. این پرونده باید برای آگاه‌سازی fcron از مدت زمان تعلیق سیستم (در حافظه یا دیسک) استفاده شود تا زمان‌بندی وظایف متناسب با آن به‌روزرسانی گردد. این پرونده باید متعلق به root:root باشد و توسط دیگران قابل نوشتن نباشد. هنگامی که سیستم ازسرگرفته می‌شود، تعداد ثانیه‌هایی را که سیستم در تعلیق بوده (به عنوان یک رشته) در این پرونده بنویسید، و سپس سیگنال SIGCONT را بفرستید تا fcron آن پرونده را پردازش کرده (و سپس حذف نماید). این کار در لینوکس لازم نیست زیرا fcron از APIهای ویژهٔ لینوکس برای تشخیص ازسرگیری و اندازه‌گیری مدت زمان تعلیق استفاده می‌کند.

fcrontab(1),

fcrondyn(1),

fcrontab(5),

fcron.conf(5),

fcron(8).

اگر در حال یادگیری نحوهٔ استفاده از fcron از ابتدا هستید، پیشنهاد می‌کنم نسخهٔ HTML مستندات را مطالعه کنید (اگر همین الان در حال خواندن آن نیستید! :) ): محتوا یکسان است، اما به لطف پیوندها (hyperlinks) مرور آن آسان‌تر است.

Thibault Godouet <fcron@free.fr>

22 March 2025 03/22/2025