| DHCPCD-RUN-HOOKS(8) | System Manager's Manual | DHCPCD-RUN-HOOKS(8) |
نام (NAME)
dhcpcd-run-hooks —
اسکریپت
پیکربندی
کلاینت DHCP
توضیحات (DESCRIPTION)
dhcpcd-run-hooks
توسط
dhcpcd(8)
برای اجرای
اسکریپتهای
قلاب (hook)
سیستمی و
تعریفشده
توسط کاربر
استفاده
میشود.
اسکریپتهای
قلاب
سیستمی در
مسیر
/usr/lib/dhcpcd/dhcpcd-hooks
قرار دارند
و قلابهای
تعریفشده
توسط کاربر
/etc/dhcpcd.enter-hook و
/etc/dhcpcd.exit-hook
هستند. نصب
پیشفرض،
اسکریپتهای
قلابی برای
پیکربندی
/etc/resolv.conf و نام
میزبان (hostname)
فراهم
میکند.
توزیع شما
ممکن است
اسکریپتهای
قلاب
دیگری،
مثلاً برای
پیکربندی ntp
یا ypbind را نیز
شامل شده
باشد.
همچنین یک
قلاب
آزمایشی
نیز ارائه
شده است که
متغیرهای dhcp
پیام DISCOVER را در
کنسول چاپ
میکند.
اسکریپتهای
قلاب به جای
اجرا در
فرآیند
مستقل خود،
در شل (shell) جاری
بارگذاری
میشوند.
این موضوع
به هر
اسکریپت
قلاب،
مانند
/etc/dhcpcd.enter-hook
اجازه
میدهد
متغیرهای
محیطی را
سفارشی
کرده یا
توابع
جایگزینی
برای
قلابهای
بعدی در
زنجیره
فراهم کند.
به همین
دلیل،
استفاده از
دستورات
داخلی شل
مانند exit,
exec یا
موارد
مشابه باعث
خروج dhcpcd-run-hooks
در همان
نقطه خواهد
شد.
هر بار که
dhcpcd-run-hooks
فراخوانی
میشود،
$interface روی
رابطی که
dhcpcd روی آن
اجرا شده
تنظیم
میگردد و
$reason روی
دلیل
فراخوانی
dhcpcd-run-hooks
تنظیم
میشود.
اطلاعات DHCP
که باید
پیکربندی
شوند در
متغیرهایی
که با کلمه new_
آغاز
میشوند
نگهداری
میگردند و
اطلاعات
قدیمی DHCP که
باید حذف
شوند در
متغیرهایی
که با کلمه old_
شروع
میشوند
قرار دارند.
dhcpcd
میتواند
فهرست کامل
متغیرهایی
را که
میشناسد
با استفاده
از آرگومان
-V, --variables
نمایش دهد.
در ادامه
فهرستی از
دلایلی که
ممکن است
dhcpcd-run-hooks به
خاطر آنها
فراخوانی
شود آمده
است:
PREINIT- دستور dhcpcd در حال راهاندازی است و هرگونه مقداردهی اولیه که لازم است باید اکنون انجام شود.
CARRIER- دستور dhcpcd برقراری حامل سیگنال (carrier) را تشخیص داده است. این پیام معمولاً صرفاً یک اعلان است و نیازی به اقدام خاصی ندارد.
NOCARRIER- دستور dhcpcd حامل سیگنال را از دست داده است. ممکن است کابل جدا شده یا اتصال به نقطه دسترسی بیسیم قطع شده باشد.
NOCARRIER_ROAMING- دستور dhcpcd حامل سیگنال را از دست داده اما پیکربندی رابط حفظ شده است. برای این منظور، سیستمعامل باید از رومینگ بیسیم یا پایداری IP پشتیبانی کند.
INFORM|INFORM6- دستور dhcpcd سرور DHCP را از آدرس خود مطلع کرده و سایر جزئیات پیکربندی را به دست آورده است.
BOUND|BOUND6- دستور dhcpcd یک اجاره (lease) جدید از سرور DHCP دریافت کرده است.
RENEW|RENEW6- دستور dhcpcd اجاره خود را تمدید کرده است.
REBIND|REBIND6- دستور dhcpcd به یک سرور DHCP جدید متصل (rebind) شده است.
REBOOT|REBOOT6- دستور dhcpcd با موفقیت درخواست اجاره از سرور DHCP ثبت کرده است.
RELEASE|RELEASE6- دستور dhcpcd اجاره را آزاد کرده است.
DELEGATED6- دستور dhcpcd یک پیشوند واگذارشده (delegated prefix) را به رابط اختصاص داده است.
IPV4LL- دستور dhcpcd یک آدرس IPV4LL دریافت کرده، یا یکی از آنها حذف شده است.
STATIC- دستور dhcpcd با یک پیکربندی ایستا که از سرور DHCP دریافت نشده، پیکربندی شده است.
3RDPARTY- دستور dhcpcd در حال پایش رابط است تا ابزار شخص ثالثی به آن آدرس IP اختصاص دهد.
TIMEOUT|TIMEOUT6- دستور dhcpcd نتوانست با هیچ سرور DHCP ارتباط برقرار کند، اما توانست از یک اجاره قدیمی استفاده کند.
EXPIRE|EXPIRE6- اجاره یا وضعیت dhcpcd منقضی شده و موفق به دریافت اجاره جدید نشده است.
NAK- دستور dhcpcd یک پیام NAK از سرور DHCP دریافت کرده است. با این مورد باید مانند EXPIRE رفتار شود.
RECONFIGURE- به dhcpcd دستور داده شده است که یک رابط را مجدداً پیکربندی کند.
ROUTERADVERT- دستور dhcpcd یک اعلان روتر (Router Advertisement) IPv6 دریافت کرده یا یکی از آنها منقضی شده است.
STOP|STOP6- اجرای dhcpcd روی رابط متوقف شده است.
STOPPED- اجرای dhcpcd به طور کامل متوقف شده است.
DEPARTED- رابط شبکه حذف شده است.
FAIL- دستور dhcpcd نتوانست روی رابط کار کند. این حالت معمولاً زمانی رخ میدهد که dhcpcd از رابط خام پشتیبانی نکند؛ یعنی نمیتواند به عنوان کلاینت DHCP یا ZeroConf عمل نماید. پیکربندی ایستا و DHCP INFORM همچنان مجاز هستند.
TEST- دستور dhcpcd یک پیشنهاد (OFFER) از سرور DHCP دریافت کرده است اما رابط را پیکربندی نخواهد کرد. این مورد عمدتاً برای آزمایش این که متغیرها به درستی برای پردازش توسط اسکریپت پر شدهاند به کار میرود.
محیط (ENVIRONMENT)
dhcpcd تمام
متغیرهای
محیطی به جز
$PATH را پاک
خواهد کرد.
سپس
متغیرهای
زیر همراه
با
متغیرهای
ارائهشده
توسط
پروتکل
تنظیم
خواهند شد:
$interface- نام رابط شبکه.
$protocol- پروتکلی که رویداد را ایجاد کرده است.
$reason- همانطور که در بالا توضیح داده شد.
$pid- شناسه
فرآیند (PID)
dhcpcd. $ifcarrier- وضعیت
پیوند (link)
مربوط به
$interface:unknown,upیاdown. $ifmetric- اولویت
$interfaceکه مقدار کمتر ترجیح داده میشود. $ifwireless1اگر$interfaceبیسیم باشد، در غیر این صورت0.$ifflags- پرچمهای
$interface. $ifmtu- مقدار MTU
مربوط به
$interface. $ifssid- شناسه SSID که
interfaceبه آن متصل است. $interface_order- فهرستی از رابطها بر اساس اولویت.
$if_configuredtrueاگر dhcpcd رابطinterfaceرا پیکربندی کرده باشد، در غیر این صورتfalse.$if_uptrueاگر رابطinterfaceفعال (up) باشد، در غیر این صورتfalse. این فراتر از IFF_UP است و ممکن است با آن برابر نباشد.$if_downtrueاگر رابطinterfaceغیرفعال (down) باشد، در غیر این صورتfalse. این فراتر از IFF_UP است و ممکن است با آن برابر نباشد.$af_waiting- خانواده آدرسِ (Address family) در حال انتظار، مطابق با تعریف در dhcpcd.conf(5).
$profile- نام نمایه (profile) انتخابشده از dhcpcd.conf(5).
$new_delegated_dhcp6_prefix- فهرست جداشده با فاصله از آدرسهای اختصاصیافته از پیشوندهای واگذارشده.
فایلها (FILES)
هنگامی که
dhcpcd-run-hooks اجرا
میشود،
ابتدا
/etc/dhcpcd.enter-hook, سپس
هر
اسکریپتی
که در
/usr/lib/dhcpcd/dhcpcd-hooks
یافت شود را
به ترتیب
الفبایی، و
در نهایت
/etc/dhcpcd.exit-hook را
بارگذاری
میکند.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Roy Marples <roy@marples.name>
گزارش اشکالات (BUGS)
لطفاً آنها را به https://roy.marples.name/projects/dhcpcd گزارش دهید.
ملاحظات امنیتی (SECURITY CONSIDERATIONS)
dhcpcd
محتوای هر
گزینه را بر
اساس نوع
کدگذاری آن
اعتبارسنجی
خواهد کرد.
برای
کدگذاریهای
رشتهای (string)،
اسکی (ascii)، خام
(raw) یا binhex،
اعتبارسنجی
آن متناسب
با هدف مورد
نظر بر عهده
کاربر است.
هنگام استفاده در یک اسکریپت شل، هر متغیر باید به درستی داخل کوتیشن قرار گیرد.
| August 14, 2026 | Linux 6.12.107+deb13-amd64 |