SystemD
SystemD، مدیر جدید سرویس و سیستم (System and Service Manager) لینوکسی است که جایگزین SysV یا init.d شده است. SystemD سرعت چشمگیری در بوت و لود شدن سیستم در بخش System Manager ارائه داده است. همچنین در زمینه سرویس ها و بخش Service Manager این مسئله وجود دارد و باعث سرعت بی نظیر سرویس ها نیز شده است.
SystemD، مدیر جدید سرویس و سیستم (System and Service Manager) لینوکسی است که جایگزین SysV یا init.d شده است. SystemD سرعت چشمگیری در بوت و لود شدن سیستم در بخش System Manager ارائه داده است. همچنین در زمینه سرویس ها و بخش Service Manager این مسئله وجود دارد و باعث سرعت بی نظیر سرویس ها نیز شده است. برای مثال درخواست های dbus قبل از اینکه سرویس آماده کار باشد Queue می شوند تا به محض لود شدن سرویس این درخواست ها استفاده شوند. همچنین سوکت ها توسط SystemD پیش از فراخوانی daemon ایجاد میشوند. مشابه با launched در OSX. تمامی این موارد سرعت فوق العاده ای را برای SystemD به ارمغان می آورند.
SystemD در بخش مدیر سیستم وظیفه مقداردهی اولیه سیستم (system initialization) و power state ماشین مانند up، down، suspended، hybridو ... را به عهده دارد. SystemD در زمینه مدیر سرویس وظیفه مدیریت فضای کاربری (User-space) daemonها (سرویسها) و همچنین مدیریت سایر واحدهای سیستم (units) مانند دستگاهها، daemonها، سوکت ها، d-bus و ... را به عهده دارد.
سیستم INIT جدید بیشتر distroهای اصلی امروزه از systemd استفاده میکنند مانند Debian، Redhat، SuSE و غیره.
در SystemD فراهم کردن مدیریت unit به صورت مفهومی است (سرویسها (daemonها)، دستگاهها، مسیرها و غیره) و Abstractionی از تمام اشیای مهم روی یک سیستم لینوکس یعنی هارد درایو، سرویس، mount point ها و غیره بوجود آمده است. همچنین SystemD وجوه مختلف را از طریق فایلهای unit مدیریت میکند. بعنوان مثال:
'.service'(daemons), '.mount'(/etc/fstab), etc., '.path', '.device', '.socket', '.target'(run-level), '.snapshot', '.timer'(cron), etc.
با توجه به اینکه در بیشتر توزیع ها من جمله Redhat، Debian، Suse، Ubuntu، Fedora، Kali، CentOS و ... مدیرSystem وService از SysV به SystemD تغییر پیدا کرده است، همچنین ارائه سرعت بی نظیر و شگفت انگیز در بخش System و Service در SystemD و در نهایت ایجاد تغییرات عمده از SysV به SystemD، پیشنهاد می کنیم این دوره را مطالعه نمایید.
SystemD Course Objectives:
1- systemd Features | Boot
- Discuss features and benefits
- Contrast with SysV INIT
- Explore boot environment
- Highlight systemd functionality
- Change systemd boot target
- Evaluate startup environment
- Draw parallels to SysV INIT where appropriate
2- System Information
- Identify important systemd utilities
- Expose time | date related settings
- Alter timezone settings and evaluate
- Disucss locale control
- Discuss available hostname settings
- Identify default hostname configuration
- Alter hostnames as needed and evalute changes
- Confirm persistence of altered results
- Identify logged-in users
- Discuss various applicable systemd tools
3- Targets | RunLevels
- Contrast SysV RunLevels with systemd Targets
- Identify default target | runlevel
- Alter target as needed and contrast with runlevels
- Transcend targets and track runlevel equivalents
- Enumerate loaded | supported targets
- Enter 'rescue' target and evaluate
- Reduce services | enter 'emergency' target
- Contrast both targets | discuss relevance
- Change default target on managed nodes
4- System Control
- Identify key systemd utility
- Explore power management commands | options
- Contrast with historical tools
- Dump ALL systemd-managed objects
- Identify objects of interest
- Enumerate failed objects
- Expose systemd object status
- Parse output by: sockets, devices and services
- Manage services | Contrast with SysV
- Disable | Enable services | Confirm persistence
5- Remote Control
- Setup SSH environment to support effortless remote control
- List available remote systemd-managed objects
- Ascertain default target on remote nodes
- Alter default target on remote nodes and confirm persistence
- Manipulate targets on remote nodes and evaluate
6- LOG(Journal Control)
- Discuss important features of systemd logging
- Reboot nodes and identify stored LOGs
- Enable persistence of retained LOGs
- Parse LOGs to obtain objects of interest
- Find LOG entries pertaining to specific $USER[s]
- Monitor LIVE LOGs and contrast with 'watch'
- Extract LOG ranges
- Identify BOOT LOG data
- Expose LOG footprint