| COREDUMP.CONF(5) | coredump.conf | COREDUMP.CONF(5) |
نام (NAME)
coredump.conf - فایل پیکربندی مدیریت تخلیه حافظه هسته (Core Dump)
خلاصه دستور (SYNOPSIS)
توضیحات (DESCRIPTION)
این فایلها رفتار systemd-coredump(8) را پیکربندی میکنند، که گردانندهای برای تخلیه حافظه هسته (Core Dump) است که توسط هسته لینوکس فراخوانی میشود. استفاده از systemd-coredump توسط تنظیم kernel.core_pattern در sysctl(8) هسته تعیین میشود. برای جزئیات بیشتر به صفحات راهنمای systemd-coredump(8) و core(5) مراجعه کنید.
دایرکتوریهای پیکربندی و اولویتبندی (CONFIGURATION DIRECTORIES AND PRECEDENCE)
پیکربندی پیشفرض در زمان کامپایل تعیین میشود، بنابراین پیکربندی تنها زمانی مورد نیاز است که لازم باشد از مقادیر پیشفرض انحراف ایجاد شود. فایل پیکربندی اصلی از یکی از دایرکتوریهای فهرستشده به ترتیب اولویت بارگذاری میشود و تنها از اولین فایل یافتشده استفاده میگردد: /etc/systemd/، /run/systemd/، /usr/local/lib/systemd/ [1]، /usr/lib/systemd/. نسخه ارائهشده توسط توزیعکننده (vendor) شامل ورودیهای کامنتشدهای است که مقادیر پیشفرض را به عنوان راهنمای مدیر سیستم نشان میدهد. بازنویسیهای محلی را نیز میتوان با ایجاد فایلهای تکمیلی (drop-in) مطابق توضیحات زیر انجام داد. فایل پیکربندی اصلی را نیز میتوان برای این منظور ویرایش کرد (یا یک رونوشت در /etc/ اگر در /usr/ عرضه شده باشد)، با این حال استفاده از فایلهای تکمیلی (drop-in) برای پیکربندی محلی به جای تغییر دادن فایل پیکربندی اصلی توصیه میشود.
علاوه بر فایل پیکربندی اصلی، قطعهکدهای پیکربندی تکمیلی (drop-in) از دایرکتوریهای /usr/lib/systemd/*.conf.d/، /usr/local/lib/systemd/*.conf.d/ و /etc/systemd/*.conf.d/ خوانده میشوند. این فایلهای تکمیلی اولویت بالاتری دارند و فایل پیکربندی اصلی را بازنویسی میکنند. فایلهای موجود در زیردایرکتوریهای پیکربندی *.conf.d/ صرفنظر از اینکه در کدام زیردایرکتوری قرار دارند، بر اساس نام فایل خود به ترتیب واژهنگاری (lexicographic) مرتب میشوند. هنگامی که چندین فایل یک گزینه یکسان را تعیین میکنند، برای گزینههایی که فقط یک مقدار واحد را میپذیرند، ورودی موجود در فایلی که نام آن در آخرین جایگاه قرار میگیرد اولویت دارد، و برای گزینههایی که فهرستی از مقادیر را میپذیرند، ورودیها به همان ترتیبی که در فایلهای مرتبشده ظاهر میشوند جمعآوری میگردند.
هنگامی که بستهها نیاز به سفارشیسازی پیکربندی دارند، میتوانند فایلهای تکمیلی (drop-in) را در /usr/ نصب کنند. فایلهای موجود در /etc/ برای مدیر سیستم محلی رزرو شدهاند، که میتواند از این منطق برای بازنویسی فایلهای پیکربندی نصبشده توسط بستههای توزیعکننده استفاده کند. برای بازنویسی قطعات تکمیلی بسته، باید از فایلهای تکمیلی استفاده شود، زیرا فایل پیکربندی اصلی اولویت پایینتری دارد. توصیه میشود نام تمام فایلها در این زیردایرکتوریها با یک عدد دو رقمی و یک خط تیره پیشوندگذاری شود تا ترتیب آنها سادهتر شود. این کار همچنین مفهوم اولویتهای تکمیلی را تعریف میکند تا به توزیعکنندگان سیستمعامل اجازه دهد فایلهای تکمیلی را در محدوده خاصی پایینتر از محدوده مورد استفاده کاربران عرضه کنند. این امر خطر بازنویسی تصادفی فایلهای تکمیلی تعریفشده توسط کاربران را توسط فایلهای تکمیلی بستهها کاهش میدهد. توصیه میشود از محدوده 10-40 برای فایلهای تکمیلی در /usr/ و از محدوده 60-90 برای فایلهای تکمیلی در /etc/ و /run/ استفاده شود، تا اطمینان حاصل گردد که فایلهای تکمیلی محلی و گذرا بر فایلهای تکمیلی عرضهشده توسط توزیعکننده سیستمعامل اولویت دارند.
برای غیرفعال کردن یک فایل پیکربندی ارائهشده توسط توزیعکننده، روش توصیهشده قرار دادن یک پیوند نمادین (symlink) به /dev/null در دایرکتوری پیکربندی در /etc/ با همان نام فایل پیکربندی توزیعکننده است.
گزینهها (OPTIONS)
تمام گزینهها در بخش [Coredump] پیکربندی میشوند:
Storage=
هنگامی که فایلهای core در ژورنال ذخیره میشوند، ممکن است طبق تنظیمات فشردهسازی ژورنال فشرده شوند؛ به journald.conf(5) مراجعه کنید. هنگامی که فایلهای core به صورت خارجی ذخیره میشوند، به طور پیشفرض فشرده خواهند شد؛ در زیر را مشاهده کنید.
توجه داشته باشید برای پردازش تخلیه حافظه هسته (یعنی استخراج ردگیری پشته/stack trace)، فایل core ابتدا باید روی دیسک نوشته شود. بنابراین، مگر در حالتی که ProcessSizeMax= روی 0 تنظیم شده باشد (در زیر ببینید)، فایل core در هر صورت (تحت یک نام فایل موقت، یا حتی در یک فایل unlinked) در /var/lib/systemd/coredump/ نوشته خواهد شد؛ از این رو Storage= تنها کنترل میکند که آیا پس از پردازش، در آنجا باقی بماند یا خیر.
در نگارش 215 اضافه شد.
Compress=
در نگارش 215 اضافه شد.
ProcessSizeMax=
تنظیم Storage=none و ProcessSizeMax=0 تمام فرآیند مدیریت تخلیه حافظه هسته را به جز ثبت یک ورودی در گزارش (log) غیرفعال میکند.
در نگارش 215 اضافه شد.
EnterNamespace=
توجه داشته باشید که تخلیه حافظه هسته فرایند دارای فضای نام، حتی اگر EnterNamespace= روی "no" تنظیم شده باشد، همچنان در /var/lib/systemd/coredump/ روی میزبان ذخیره میشود (مشروط به تنظیم Storage=).
توجه داشته باشید که EnterNamespace= تنها در صورتی موثر است که تخلیه حافظه هسته توسط کانتینری تولید شده باشد که در واحد (unit) آن گزینه CoredumpReceive= فعال نشده باشد.
توجه داشته باشید که معمولاً برای حداکثر امنیت ترجیح داده میشود که کانتینرها و سایر جعبههای شنی مبتنی بر فضای نام، در صورت امکان تخلیه حافظه هسته خود را پردازش کنند. این قابلیت را میتوان روی واحد کانتینر از طریق تنظیم CoredumpReceive= فعال کرد؛ برای جزئیات به systemd.resource-control(5) مراجعه فرمایید.
در نگارش 257 اضافه شد.
ExternalSizeMax=, JournalSizeMax=
ExternalSizeMax=infinity اندازه core را نامحدود تعیین میکند.
در نگارش 215 اضافه شد.
MaxUse=, KeepFree=
در نگارش 215 اضافه شد.
از دستور
systemd-analyze cat-config systemd/coredump.conf
برای نمایش پیکربندی کامل استفاده کنید.
همچنین ببینید (SEE ALSO)
systemd-journald.service(8)، coredumpctl(1)، systemd-tmpfiles(8)
نکات (NOTES)
- 1.
- 💣💥🧨💥💥💣 لطفاً توجه داشته باشید که این فایلهای پیکربندی باید همیشه در دسترس باشند. اگر /usr/local/ یک پارتیشن جداگانه باشد، ممکن است در مراحل اولیه بوت در دسترس نباشد و نباید برای پیکربندی استفاده شود.
| systemd 261.2 |