سطح اجرا

در سیستم‌های یونیکسی که آغازش سبک سیستم ۵ را پیاده‌سازی کرده‌اند، سطوح اجرا (runlevels) به مدهای عملیاتی سیستم عامل گفته می‌شود. به‌طور قراردادی ۷ سطح اجرا وجود دارد که از ۰ تا ۶ شماره‌گذاری شده‌اند؛ البته تا ده مد اجرا یعنی از ۰ تا ۹ می‌تواند تعریف و استفاده شود. یکی از این مدهای عملیاتی، مد تک‌کاربره است که می‌توان به‌جای عدد از نماد S استفاده کرد. تنها یک سطح اجرا هنگام بوت اجرا می‌شود و سطوح اجرا به ترتیب اجرا نمی‌شوند. به عنوان مثال هنگام بوت یکی از سطوح اجرای ۲ یا ۳ یا ۴ اجرا می‌شود نه اینکه اول ۲ سپس ۳ و بعد ۴.

«سطح اجرا» وضعیت دستگاه بعد از بوت شدن را تعریف می‌کند. سطوح اجرا معمولاً به وضعیت‌های زیر تخصیص یافته‌اند:
 مد تک‌کاربره
 مد چندکاربره بدون شروع سرویس‌های شبکه
 مد چندکاربره با سرویس‌های شبکه
 خاموش کردن سیستم
 راه‌اندازی مجدد (ریبوت) سیستم

تنظیمات دقیق پیکربندی‌های فوق از سیستم عامل به سیستم عامل و از یک توزیع لینوکس به توزیع دیگر فرق می‌کند؛ مثلاً سطح اجرای ۴ ممکن است در یک توزیع مد چندکاربره، محیط کاربری گرافیکی یا بدون هیچ سروری باشد و در توزیع دیگری سطح ۴ ممکن است هیچ چیز نباشد در این خصوص به تفاوت بین توزیع‌های مبتنی بر ردهت و اسلکور که در این مقاله بررسی شده‌اند، توجه کنید. البته سطوح اجرا در سیستم عامل‌های مختلف معمولاً تابع الگوهای مشروح در این مقاله‌اند. هنگام نصب لینوکس بهتر است به راهنماهای کاربری آن توزیع رجوع کنید.

در عمل و به‌طور استاندارد وقتی کامپیوتری به سطح اجرای ۰ وارد می‌شود، متوقف و خاموش می‌شود و وقتی وارد سطح ۶ می‌شود راه‌اندازی مجدد می‌شود. سطوح اجرای بین این دو سطح (۱–۵) در دیسک‌گردان‌هایی که سوار می‌شوند و سرویس‌های شبکه‌ای که شروع می‌شوند با هم فرق می‌کنند. سطوح اجرای پیش‌فرض معمولاً ۳، ۴ یا ۵ است. سطوح اجرای پایین‌تر چون معمولاً هیچ سرویس شبکه‌ای ارائه نمی‌کنند، برای نگه‌داری و تعمیرات اضطراری بکار می‌روند. جزئیات مختص هر سطح اجرا به‌طور گسترده‌ای از سیستم عامل به سیستم عامل و همین‌طور بین پیکربندی‌های مدیران سیستم فرق می‌کند.

سیستم سطح اجرا جایگزین اسکریپت سنتی /etc/rc شد که در یونیکس نسخهٔ ۷ از آن استفاده می‌شد.

سطوح اجرای استاندارد

لینوکس 
سیستم عامل لینوکس می‌تواند با استفاده از برنامه‌های پروژهٔ sysvinit از سطوح اجرا استفاده کند. پس از اینکه هسته‌ی لینوکس بوت می‌شود، برنامهٔ init فایل /etc/inittab را می‌خواند تا رفتار هر سطح اجرا را دریابد. در صورتی که کاربر مقدار دیگری را به عنوان پارامتر بوت هسته تعیین نکرده‌باشد، سیستم سعی خواهد کرد تا به سطح اجرای پیش‌فرض وارد شود.

سطوح اجرای معمول در لینوکس 
توزیع‌های اصلی لینوکس توافق کرده‌اند که سطوح اجرای زیر را به عنوان بخشی از مشخصات «مبنای اساسی لینوکس»۲ تعریف کنند:

لینوکس دبیان 
دبیان، به همراه توزیع‌های مبتنی بر آن، مثل روزهای اول اوبونتو، بین سطوح ۲ تا ۵ تمایزی قائل نمی‌شود.

اوبونتو 
اوبونتوی 6.10 (Edgy Eft) به بعد به عنوان پروسهٔ سنتی init از Upstart استفاده می‌کنند، ولی این توزیع‌ها هنوز از اسکریپت‌های سنتی اینیت و ابزار سازگاری با SysV-rc ِ آپستارت برای شروع بیشتر سرویس‌ها و شبیه‌سازی سطوح اجرا استفاده می‌کنند.

لینوکس ردهت و فدورا 
ردهت و بیشتر مشتقاتش (مثل CentOS) از سطوح اجرا به شیوهٔ زیر استفاده می‌کنند:

اینکه چه سرویس‌هایی در چه سطوح اجرایی شروع می‌شوند را می‌توان با ابزار chkconfig مدیریت کرد که پیکربندی‌اش را تحت /etc/rc.d نگه می‌دارد. /sbin/chkconfig –list تمام سرویس‌هایی را که توسط chkconfig کنترل می‌شوند را فهرست می‌کند و نشان می‌دهد که در هر سطح اجرا سرویس‌ها خاموش یا روشن هستند. تنظیم سرویسِ A که توسط chkconfig کنترل می‌شود برای سطوح X و Y و Z به سادگی زیر است:
/sbin/chkconfig –level A on

لینوکس سوزی 
سوزی از تنظیماتی مشابه ردهت استفاده می‌کنند:

سرویس‌هایی که تحت یک سطح اجرای خاص اجرا می‌شوند را می‌توان با YaST | System Services (runlevel)I یا با فرمان chkconfig مثل توزیع‌های مبتنی بر ردهت تغییر داد.

لینوکس Slackware

لینوکس آرچ

لینوکس جنتو

یونیکس

سیستم ۵ انتشارهای ۳ و ۴

سولاریس

HP-UX

FreeBSD، اopenBSD و NetBSD 
مشتقات بی‌اس‌دی از مفهوم سطوح اجرا استفاده نمی‌کنند با وجود این در برخی نسخه‌ها init(8)I سطوح اجرای متداول را شبیه‌سازی می‌کند.

AIX 
AIX از مشخصات سطوح اجرای سیستم ۵ انتشار ۴ (SVR4) پیروی نمی‌کند. در این سیستم عامل سطوح اجرا از ۰ تا ۹ و همین‌طور a تا c قابل استفاده است. ۰ و ۱ رزور شده‌اند، ۲ مد چندکاربرهٔ عادی است و سطوح اجرای از ۳ تا ۹ آزادند و می‌توانند توسط مدیر سیستم تعریف شوند. سطوح اجرای از a تا c اجازهٔ اجرای پروسه‌ها را بدون کشتن پروسه‌های در حال اجرا در سطحِ دیگر را می‌دهند.

منابع 

 

نرم‌افزارهای یونیکسی مرتبط با مدیریت کار و فرایند
یونیکس