SYSCTL(8) System Manager's Manual SYSCTL(8)

sysctl - پیکربندی پارامترهای هسته در زمان اجرا

sysctl [option ...] variable[=value] ...

sysctl -p file-or-regexp ...

دستور sysctl برای تغییر پارامترهای هسته در زمان اجرا استفاده می‌شود. پارامترهای در دسترس آن‌هایی هستند که ذیل /proc/sys/ فهرست شده‌اند. برای پشتیبانی از sysctl در لینوکس، به سیستم‌فایل Procfs نیاز است. شما می‌توانید از sysctl هم برای خواندن و هم برای نوشتن داده‌های sysctl استفاده کنید.

نام کلیدی که باید خوانده شود. به عنوان مثال kernel.ostype. جداکننده '/' نیز به جای '.' پذیرفته می‌شود.
برای مقداردهی یک کلید، از ساختار variable=value استفاده کنید که در آن variable نام کلید و value مقداری است که برای آن تعیین می‌شود. اگر مقدار شامل علامت نقل‌قول یا نویسه‌هایی باشد که توسط پوسته تجزیه می‌شوند، ممکن است لازم باشد مقدار را در علامت‌های نقل‌قول دوتایی (double quotes) قرار دهید.
از این گزینه برای غیرفعال کردن چاپ نام کلید هنگام چاپ مقادیر استفاده کنید.
از این گزینه برای نادیده گرفتن خطاهای مربوط به کلیدهای ناشناخته استفاده کنید.
از این گزینه تنها برای چاپ نام‌ها استفاده کنید. این گزینه می‌تواند در پوسته‌هایی با قابلیت تکمیل خودکار برنامه‌پذیر مفید باشد.
از این گزینه برای عدم نمایش مقادیر تنظیم‌شده در خروجی استاندارد (stdout) استفاده کنید.
تمام آرگومان‌ها را مجبور می‌کند که به عنوان آرگومان نوشتن تلقی شوند و در صورتی که نتوان آن‌ها را به این روش تجزیه کرد، خطا چاپ می‌کند.
بارگذاری تنظیمات sysctl از فایل مشخص‌شده، یا از /etc/sysctl.conf در صورتی که فایلی تعیین نشده باشد. تعیین - به عنوان نام فایل به معنای خواندن داده‌ها از ورودی استاندارد است. استفاده از این گزینه به این معنی است که آرگومان‌های داده‌شده به sysctl فایل هستند که به همان ترتیبی که مشخص شده‌اند خوانده می‌شوند. آرگومان فایل می‌تواند به عنوان یک عبارت باقاعده (regular expression) مشخص شود.
نمایش تمامی مقادیر موجود در حال حاضر به جز پارامترهای منسوخ‌شده و ممنوعه.
گنجاندن پارامترهای منسوخ‌شده در فهرست مقادیر گزینه --all.
چاپ مقدار بدون ایجاد خط جدید.
بارگذاری تنظیمات از تمامی فایل‌های پیکربندی سیستم. بخش اولویت فایل‌های سیستمی را در ادامه ببینید.
تنها اعمال تنظیماتی که با pattern مطابقت دارند. pattern از نحو عبارت‌های باقاعده گسترش‌یافته (ERE) استفاده می‌کند.
نام مستعار برای -a
نام مستعار برای -h
نام مستعار برای -p
نام مستعار برای -a
کاری انجام نمی‌دهد؛ برای سازگاری با BSD وجود دارد.
کاری انجام نمی‌دهد؛ برای سازگاری با BSD وجود دارد.
نمایش متن راهنما و خروج.
نمایش اطلاعات نسخه و خروج.

/proc/sys
/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf

هنگام استفاده از گزینه --system، دستور sysctl فایل‌ها را از پوشه‌های موجود در فهرست زیر، به ترتیب داده‌شده از بالا به پایین می‌خواند. زمانی که فایلی با یک نام مشخص بارگذاری شد، هر فایلی با همان نام در پوشه‌های بعدی نادیده گرفته می‌شود.

/etc/sysctl.d/*.conf
/run/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf

تمامی فایل‌های پیکربندی صرف‌نظر از پوشه‌ای که در آن قرار دارند، به ترتیب الفبایی و لغت‌نگاری مرتب می‌شوند. فایل‌های پیکربندی می‌توانند یا به طور کامل جایگزین شوند (با داشتن فایل پیکربندی جدیدی با همان نام در پوشه‌ای با اولویت بالاتر) یا به صورت جزئی جایگزین گردند (با داشتن فایل پیکربندی دیگری که در ترتیب پس از آن قرار می‌گیرد).

فایل /etc/sysctl.conf در آخرین مرحله خوانده می‌شود، بدین معنی که می‌تواند هر پارامتری را که پیش‌تر در فایل‌های پوشه‌های فهرست‌شده تنظیم شده است، بازنویسی و جایگزین (override) کند.

پارامترهای base_reachable_time و retrans_time منسوخ شده‌اند. دستور sysctl اجازه تغییر مقادیر این پارامترها را نمی‌دهد. کاربرانی که بر استفاده از رابط‌های منسوخ‌شده هسته اصرار دارند باید مقادیر را با روش‌های دیگر به سیستم‌فایل /proc بفرستند. برای نمونه:

echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time

برخی از پارامترهای هسته به دلیل اثرات جانبی (side-effects) نباید خوانده شوند و توسط sysctl هنگام استفاده از گزینه --all نادیده گرفته می‌شوند.

این پارامتر هیچ مقداری برنمی‌گرداند اما آمار vm به ازای هر پردازنده (per-cpu) را تخلیه (flush) می‌کند.

/sbin/sysctl -a
/sbin/sysctl -n kernel.hostname
/sbin/sysctl -w kernel.domainname="example.com"
/sbin/sysctl -p/etc/sysctl.conf
/sbin/sysctl -a --pattern forward
/sbin/sysctl -a --pattern forward$
/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'
/sbin/sysctl --pattern '^net.ipv6' --system

proc(5), sysctl.conf(5), regex(7)

لطفاً گزارش‌های باگ را ارسال کنید به procps@freelists.org.

2024-07-19 procps-ng