اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

فایل etc/inittab/ چیست

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    فایل etc/inittab/ چیست

    وقتی کرنل لینوکس یا هر یونیکس دیگر در حاظه اصلی لود می شود اولین فرایندی که ایجاد می شود init با PID=1 است. init بعنوان والد یا جد بزرگ تمامی فرایند های درون سیستم است و نسل تمامی فرایند ها به init می رسد. init برای بدست آوردن Run Level پیش فرض یا default فایل inittab را می خواند و پی به سطح اجرایی پیش فرض می برد. ابتدای این فایل توضیحاتی از شرح استفاده و هدف فایل و همچنین توضیح سطوح اجرایی گفته شده است. خطی از این فایل نوشته شده :

    This file describes how the INIT process should set up the system in a certain run-level
    این فایل چگونگی تنظیم سیستم بر اساس یک سطح اجرایی خاص (پیش فرض) توسط init را توصیف می کند.

    برای نمایش محتوای این فایل از دستور زیر استفاده کنید. توجه داشته باشید که محتوای فایل برای همه قابل خواندن است ولی تنها کاربر root حق تغییر در فایل را دارد. این مطلب بر اساس محتوای فایل inittab در CentOS 5 است و شاید با محتوای فایل inittab در سیستم شما تفاوت داشته باشد ولی اساس و ساختار فایل یکی است.

    کد PHP:
    less  /etc/inittab 
    سطح اجرایی یا Run Level راهی برای توصیف آن چیز هایی است که سیستم عامل در اختیار شما قرار می دهد. بطور مثال Run Level با شماره 3 یعنی داشتن شبکه و سرویس هایی مانند DNS,DHCP و … ولی یک رابط گرافیکی یا X.org نداریم. هر Run Level دارای یک دایرکتوری در درون دایرکتوری etc/rc.d/ است که شکل کلی آنها بصورت rcx.d است که x عدد از 0 تا 6 است که معرف اعداد معادل سطوح اجرایی هستند. (می توانید این پست را بخوانید).

    هر خط این فایل شامل 4 قسمت است. اولین بخش یک شناسه (ID) عدد یا حرفی منحصر به فرد است. شناسه ها متشکل از 1 تا 4 کارکتر هستند و معرف هر خط در این فایل هستند پس باید بصورت منحصر به فرد باشند. دومین بخش شماره (های) سطح (های) اجرایی است. سومین بخش یک عمل یا action است و بخش چهارم یک دستور یا Process و یا مسیر یک فایل است.

    کد PHP:
    id:runlevel(s):action:process 
    اصلی ترین و اولین خط تعریف بصورت زیر است. در خط زیر id شناسه منحصر به فرد برای این خط، 5 عدد سطح اجرایی و initdefault عمل یا action است. initdefault سطح اجرایی پیش فرض را تعیین می کند. سطح اجرایی پیش فرض در Redhat عدد 5 و در debian عدد 3 است. فرایند init خط به خط و از بالا به پایین این فایل را می خواند و به محض رسیدن به خط با شناسه id عدد 5 را می بیند و سپس عمل initdefault را می بیند و سطح اجرایی را 5 در نظر می گیرد و در نهایت سرویس های درون دایرکتوری etc/rc.d/rc5.d/ را start و یا kill می کند.

    کد PHP:
    :id:5:initdefault 
    در مورد دومین بخش از خطوط این فایل، بطور مثال خط زیر action یا عمل sysinit را روی فایل etc/rc.d/rc.sysinit برای تمامی سطوح اجرایی انجام می دهد. چون دومین بخش از خط زیر خالی است، یعنی تمامی سطوح اجرایی (سطوح اجرایی 0 تا 6) که معادل این است تمامی اعداد را بنویسیم. دو خط زیر معادل هم هستند. خط های زیر باعث اجرای اسکریپت rc.sysinit در تمامی سطوح اجرایی می شود.

    کد PHP:
    si::sysinit:/etc/rc.d/rc.sysinit

    si
    :0123456:sysinit:/etc/rc.d/rc.sysinit 
    خطوط زیر ترمینال های 1 تا 6 را در سطوح اجرایی 2 تا 5 در اختیار کاربر قرار می دهد. tty ها ترمینال هایی هستند که با فشردن کلید های Ctrl+Alt+F1 تا F6 در اختیار شما قرار می گیرد. دومین بخش شامل اعداد 2 تا 5 است یعنی اینکه برای سطوح اجرایی 2 تا 5 استفاده می شود. اما چرا در خطوط زیر اعداد 0 یا 1 یا 6 وجود ندارد؟ چون سطوح اجرایی 0 و 6 به ترتیب برای reboot و shutdown است و سطح اجرایی 1 برای مد یا حالت تک کاربره که فقط مدیر یا root وجو دارد.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	rntab.png نمایش ها:	1 اندازه:	5.1 KB شناسه:	18341

    برخی از عمل ها یا action های متداول را که می توان نام برد :

    respawn : وقتی یک فرایند خاتمه یا terminate می یاید بصورت خودکار راه اندازی مجدد می شود. یعنی همواره یک نسخه از فرایند در حافظه اصلی باقی می ماند مانند getty در شکل بالا که همیشه باید به شما یک ترمینال را بدهد (همواره اماده پاسخ گویی به در خواست شما مبنی بر داشتن یک ترمینال را انجام دهد). اگر دستور ps را بصورت زیر اجرا کنید می بنید که 6 تا ترمینال وجود دارند.

    کد PHP:
    ps  -ef grep  getty 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	gettab.png نمایش ها:	1 اندازه:	9.9 KB شناسه:	18342

    حالا اگر با دستور kill بصورت زیر یکی از 6 فرایند بالا مانند 4032 را برای tty2 از بین ببریم و سپس دوباره دستور ps را بصور بالا اجرا کنیم می بینیم که دوباره فرایند tty2 با یک PID جدید ساخته شده است.

    کد PHP:
    kill  -15  4032 
    sysinit : فرایند یا اسکریپت در طول boot شدن یا boot time اجرا می شود. action یا عمل sysinit باید حتمن پیش از اعمال boot یا bootwait انجام شود.
    initdefault : سطح اجرایی که سیستم پس از بوت شدن باید وارد آن شود را تعیین می کند که همان سطح اجرایی پیش فرض است. اگر این action وجود نداشته باشد فرایند init از طریق کنسول از شما در خواست ورود یک عدد سطح اجرایی را می کند. بخش فرایند خالی است.
    boot : فرایند در زمان بوت شدن اجرا می شود. بخش سطح اجرایی خالی است.
    once : اسکریپت یا فرایند تنها یک بار پس از وارد شدن به سطح اجرایی تعیین شده اجرا می شود.
    wait : اسکریپت یا فرایند پس از ورود به سطح اجرایی تعیین شده اجرا می شود تا زمانی که توسط init خاتمه یابد.
    crtlaltdel : عملی که نوع پیش فرض shutdown شدن و تنظیمات آن را تعیین می کند. یک مثال از این خط بصورت زیر است. برای آشنایی با دستور shutdown و تنظیم این خط این پست را بخوانید.

    کد PHP:
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now 
    اطلاعات بیشتر :

    راهنمای inittab با دستور man inittab
    مانیتورینگ و مدیریت فرایند ها
    سطوح اجرایی در لینوکس
    دستور shutdown در لینوکس

    نویسنده : نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-13-2020, 03:46 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X