فرمان inittab-لینوکس / یونیکس

inittab - فرمت فایل inittab مورد استفاده توسط فرآیند init in sysv سازگار است

شرح

فایل inittab توضیح می دهد که کدام فرآیند در هنگام راه اندازی و در طول عملیات عادی اجرا می شود (مثلا: /etc/init.d/boot، /etc/init.d/rc، gettys ...). Init (8) سطوح مختلف کارایی را تشخیص می دهد، که هر کدام می توانند مجموعه ای از فرآیندهای خود را که شروع شده اند داشته باشند. سطوح معتبر سطح 0 - 6 به علاوه A ، B و C برای ورودی های بعدی است. یک ورودی در فایل inittab دارای فرمت زیر است:

id: runlevels: action: process

خطوط آغاز شده با #، نادیده گرفته می شوند.

id یک دنباله ای منحصر به فرد از 1 تا 4 کاراکتر است که یک ورودی را در inittab مشخص می کند (برای نسخه های sysvinit کامپایل شده با کتابخانه ها <5.2.18 یا کتابخانه a.out محدودیت 2 کاراکتر است).

توجه: برای gettys و یا سایر فرآیندهای ورود، میدان id باید پسوند tty مربوط به tty باشد، مثلا 1 برای tty1 . در غیر این صورت، حساب ورود به سیستم ممکن است به درستی کار نکند.

سطوح اجرا سطوح اجرا را که برای اقدام مشخص شده باید انجام شود، فهرست می کند.

عمل توصیف می کند که چه اقداماتی باید انجام شود.

فرایند فرایند را اجرا می کند. اگر فیلد فرآیند با یک علامت `+ 'آغاز می شود، init نمی خواهد حساب utmp و wtmp را برای آن فرآیند انجام دهد. این برای gettys هایی است که بر روی انجام امور خود در utmp / wtmp اصرار دارند. این یک اشکال تاریخی است.

سطوح سطوح سطوح سطوح مختلف ممکن است دارای چندین کاراکتر باشد. به عنوان مثال، 123 مشخص می کند که فرآیند باید در سطوح اجرا 1، 2، و 3 آغاز شود. سطوح کار برای ورودی های خروجی ممکن است A ، B یا C باشد. فیلد سطوح ورودی sysinit ، boot و bootwait entries نادیده گرفته می شود.

هنگامی که سطح سطحی سیستم تغییر می شود، هر فرآیند در حال اجرا که برای سطوح جدید مشخص نشده است، ابتدا با SIGTERM، سپس با SIGKILL کشته می شود.

اقدامات معتبر برای زمینه فعالیت عبارتند از:

respawn

این فرایند هر زمان که پایان می یابد، دوباره راه اندازی شود (مثلا گتی).

صبر کن

فرآیند شروع خواهد شد یک بار هنگامی که سطح سطحی مشخص شده وارد شده و init منتظر پایان دادن به آن است.

یک بار

این فرایند زمانی اجرا می شود که سطر سطح مشخص شده وارد می شود.

بوت کردن

این روند در طول بوت سیستم اجرا می شود. فیلد سطوح اجرا نادیده گرفته می شود.

bootwait

این فرآیند در طول بوت سیستم اجرا می شود، در حالی که init برای خاتمه دادن آن منتظر است (مانند / etc / rc). فیلد سطوح اجرا نادیده گرفته می شود.

خاموش

این هیچ کاری نمی کند.

بر اساس تقاضا

یک فرآیند مشخص شده با سطر سطح پایین در هر سطحی اجرا می شود که اجرا می شود. با این حال، هیچ تغییر سطح اجرا رخ نخواهد داد (سطوح اجرا در پایین عبارتند از `a '،` b'، و `c ').

initdefault

ورودی initdefault سطح سطحی را مشخص می کند که باید پس از بوت شدن سیستم وارد شود. اگر هیچ کدام وجود نداشته باشد، init یک سطوح اجرا در کنسول را درخواست خواهد کرد. زمینه فرآیند نادیده گرفته می شود.

sysinit

این روند در طول بوت سیستم اجرا می شود . قبل از هرگونه مدخل boot یا bootwait اجرا خواهد شد. فیلد سطوح اجرا نادیده گرفته می شود.

امیدوارم

این فرآیند هنگامی انجام می شود که قدرت کاهش یابد. Init معمولا در مورد این با یک فرآیند صحبت کردن با UPS متصل به کامپیوتر آگاه است. Init منتظر پایان دادن به روند است قبل از ادامه.

powerfail

در مورد powerwait ، به جز اینکه init برای تکمیل فرایند منتظر نیست.

powerokwait

این فرایند به محض اینکه init اطلاع داده شده است که قدرت بازسازی شده است، اجرا می شود.

powerfailnow

این فرایند زمانی اجرا می شود که در مورد آنیتا گفته شود که باتری یو پی اس های خارجی تقریبا خالی است و قدرت خرابی است (با توجه به این که UPS خارجی و فرآیند نظارت قادر به شناسایی این شرایط هستند).

ctrlaltdel

این فرایند زمانی اجرا می شود که init سیگنال SIGINT را دریافت می کند. این به این معنی است که کسی در کنسول سیستم کلید CTRL-ALT-DEL را فشار داده است. به طور معمول، می بایست یک نوع خاموش شدن را اجرا کنید یا به یک کاربر تکیه کنید یا دستگاه را دوباره راه اندازی کنید.

kbrequest

این فرایند زمانی اجرا می شود که init یک سیگنال از دستگیرنده صفحه کلید دریافت می کند که یک ترکیب کلید ویژه در صفحه کلید کنسول فشار داده شده است.

مستندات این تابع هنوز کامل نشده است اسناد بیشتر در بسته های kbd-x.xx یافت می شود (اخیرا kbd-0.94 در زمان نوشتن آن بود). اساسا شما می خواهید برخی ترکیب صفحه کلید را به عمل KeyboardSignal بسپارید. برای مثال، برای نمایش Alt-Uparrow برای این منظور در فایل Keymaps خود از موارد زیر استفاده کنید:

alt keycode 103 = KeyboardSignal

مثال ها

این یک مثال از inittab است که شبیه لینوکس قدیمی است:

# inittab for linux id: 1: initdefault: rc :: bootwait: / etc / rc 1: 1: respawn: / etc / getty 9600 tty1 2: 1: respawn: / etc / getty 9600 tty2 3: 1: respawn: و غیره / getty 9600 tty3 4: 1: respawn: / etc / getty 9600 tty4

این فایل inittab در هنگام بوت / etc / rc اجرا می شود و gettys را در tty1-tty4 آغاز می کند.

یک inittab پیچیده تر با سطوح مختلف مدیریت (نظرات را در داخل ببینید):

# سطح برای اجرا در شناسه: 2: initdefault: # راه اندازی سیستم قبل از هر چیز دیگری. si :: sysinit: /etc/rc.d/bcheckrc # اجرای سطر 0.6 توقف و راه اندازی مجدد، 1 حالت نگهداری است. l0: 0: منتظر: /etc/rc.d/rc.halt l1: 1: wait: /etc/rc.d/rc.single l2: 2345: wait: /etc/rc.d/rc.multi l6: 6: صبر کنید: /etc/rc.d/rc.reboot # چه کاری باید در "3 انگشت سلام" انجام دهید. ca :: ctrlaltdel: / sbin / shutdown -t5 -rf now # Runlevel 2 & 3: getty on console، level 3 همچنین getty در port مودم. 1: 23: respawn: / sbin / getty tty1 VC لینوکس 2: 23: respawn: / sbin / getty tty2 VC لینوکس 3: 23: respawn: / sbin / getty tty3 VC لینوکس 4: 23: respawn: / sbin / getty tty4 VC لینوکس S2: 3: respawn: / sbin / uugetty ttyS2 M19200

همچنین مشاهده کنید

init (8)، telinit ( 8)

مهم: از دستور man ( ٪ man ) برای دیدن نحوه استفاده از دستور در رایانه خاص خود استفاده کنید.