منبع اصلی نوشتار زیر در این لینک قرار دارد

مفهوم target در توزیع هایی با استفاده از systemd

در توزیع هایی مانند RHLE/CentOS 5,6 که از init استفاده می کنند مفهوم سطح اجرایی با توزیع هایی مانند فدورا 20 و یا openSUSE 13.1 که از systemd استفاده می کنند، متفاوت است. می توانید مطلب های “توصیف سطوح اجرایی در سولاریس، لینوکس” و “چه سرویس هایی در چه سطوح اجرایی د حال اجرا شدن هستند” را که مرتبط با سطح اجرایی در سیستم هایی که از init استفاده می کنند را بخوانید. همچنین با خواندن مطلب “systemd جایگزین init” را برای آشنایی با systemd مطالعه کنید.systemd از مفهوم target به جای Runlevel استفاده می کند که شبیه به اهداف سطح اجرایی است اما تفاوتی هم دارد. هر target با یک نام مشخص است در صورتی که هز سطح اجرایی با یک عدد مشخص می شد و برای هدفی خاص در نظر گرفته شده است. همانند سیستم init، در systemd نیز target ها با سرویس هایی همراه هستند که می تواند یک target سرویس هایی را از target دیگری به ارث ببرد. بطور مثال یک target به نام graphical.target که باعث start شدن و ایجاد یک محیط گرافیکی می شود، سرویسی به نام gdm.service (مخفف Gnome Desktop Manager) را اجرا می کند و یا target به نام multi-user.target سرویس های دیگری مانند NetworkManager.service را اجرا می کند. پس همانطور که ملاحضه می کنید بر خلاف Runlevel در init، در systemd می تواند چندین target همزمان اجرا شوند و هر کدام سرویس هایی را اجرا کنند.

برای نشان دادن target پیشفرض یا default target از دستور زیر استفاده کنید.

systemd get-default

OUTPUT: runlevel5.target

runlevel5.target یک لینک به target به نام graphical.target است که معادل سطح اجرایی 5 در سیستم init است و target به نام multi-user.target معادل سطح اجرایی 3 در سیستم init است و runlevel3.target یک لینک به multi-user.target است.

ll /etc/systemd/system/default.target

ll /usr/lib/systemd/runlevel5.target

همانطور که در شکل بالا می بینید فایل default.target یک لینک به runlevel5.target و خود این فایل یک لینک به فایل graphical.target است. برای تغییر (سوئیچ) از graphical.target به multi-user.target از دستور زیر استفاده کنید.

systemctl isolate multi-user.targe

و برای سوئیچ از muti-user.target به graphical.target از دستور زیر استفاده کنید.

systemctl isolate graphical.target

از این مطلب می توانید چگونگی سوئیچ کردن از یک سطح اجرایی به سطحی دیگر را در سیستم init بخوانید. معادل دو دستور بالا در init، دستور های runlevel و telinit است. از فرمت کلی زیر برای تغییر target پیشفرض استفاده کنید. توجه کنید که تمامی target ها به پسوند target. تمام می شوند.

systemctl set-default TARGET_NAME.target

همچنین می توانید از این مطلب چگونگی تغییر سطح اجرایی پیشفرض را در سیستم init مطالعه کنید. فهرست کامل از target ها توسط دستور زیر نشان داده می شود.

systemctl list-units –type=target

جدول زیر معادل میان init و systemd را نشان می دهد.



برچسب ها : , , , ,