آموزش مشاهده و مدیریت سرویسها در لینوکس با systemctl
مقدمه:
آموزش مشاهده و مدیریت سرویسها در لینوکس با systemctl برای کنترل سرویسهایی مانند SSH، وبسرور، دیتابیس، Docker و Fail2ban ضروری است. با این ابزار میتوان وضعیت سرویس را مشاهده کرد، آن را راهاندازی یا متوقف کرد، تنظیماتش را دوباره بارگذاری نمود و اجرای خودکار آن هنگام روشنشدن سرور را کنترل کرد. بااینحال، توقف سرویسهای مهمی مانند SSH، شبکه یا فایروال روی سرور راه دور ممکن است دسترسی مدیریتی را قطع کند.
فهرست مطالب
- systemctl و systemd چیست؟
- Unit و Service چه تفاوتی دارند؟
- مشاهده سرویسهای لینوکس
- بررسی وضعیت یک سرویس
- Start، Stop، Restart و Reload
- Enable و Disable سرویسها
- تفاوت Disable و Mask
- مشاهده فایل و تنظیمات سرویس
- کاربرد daemon-reload
- بررسی گزارشها با journalctl
- عیبیابی سرویسهای Failed
- ساخت Override برای یک سرویس
- چکلیست مدیریت امن سرویسها
- جمعبندی و سؤالات متداول
systemctl چیست؟
systemctl ابزار خط فرمان مدیریت systemd است. در بسیاری از توزیعهای جدید لینوکس، systemd راهاندازی سیستم، اجرای سرویسها، وابستگیها، Timerها، Mountها و تعدادی دیگر از منابع سیستم را مدیریت میکند.
با systemctl میتوان به systemd فرمان داد که یک Unit را فعال، متوقف، راهاندازی مجدد یا بررسی کند. بیشتر کاربران با Unitهای دارای پسوند .service کار میکنند، اما systemd فقط محدود به سرویسها نیست.
نمونههایی از Unitهای systemd عبارتاند از:
| نوع Unit | پسوند | کاربرد |
|---|---|---|
| Service | .service |
مدیریت سرویس یا پردازش |
| Socket | .socket |
فعالسازی مبتنی بر سوکت |
| Timer | .timer |
اجرای زمانبندیشده وظایف |
| Mount | .mount |
مدیریت Mount Point |
| Path | .path |
واکنش به تغییر یک مسیر |
| Target | .target |
گروهبندی Unitها و وضعیتهای راهاندازی |
در بیشتر دستورها میتوان پسوند .service را حذف کرد. برای نمونه، دو دستور زیر معمولاً به یک سرویس اشاره میکنند:
systemctl status ssh
systemctl status ssh.service
نام دقیق Unit بین توزیعها و بستهها ممکن است متفاوت باشد. برای مثال، نام سرویس SSH در یک سیستم میتواند ssh.service و در سیستم دیگری sshd.service باشد؛ بنابراین پیش از اجرا، نام واقعی را پیدا کنید.
اگر سرویسهای سرور شما پس از راهاندازی مجدد اجرا نمیشوند یا مکرراً وارد وضعیت Failed میشوند، میتوانید برای بررسی systemd، وابستگیها و گزارشهای سیستم از کارشناسان شرکت تجارت الکترونیک نوژن مشاوره فنی دریافت کنید.
تفاوت Unit فعال، در حال اجرا و Enable شده
یکی از خطاهای رایج، یکساندانستن وضعیت Running و Enabled است. این دو مفهوم به زمانهای متفاوت مربوط میشوند.
- Active یا Running: سرویس اکنون در حال اجراست.
- Inactive: سرویس اکنون فعال نیست.
- Failed: سرویس اجرا نشده یا با خطا متوقف شده است.
- Enabled: برای شروع خودکار در شرایط تعریفشده، معمولاً هنگام Boot، پیوندهای لازم ایجاد شدهاند.
- Disabled: سرویس برای شروع خودکار Enable نشده است.
- Masked: راهاندازی سرویس عمداً مسدود شده است.
یک سرویس میتواند اکنون Running باشد، اما برای Boot بعدی Enabled نباشد. همچنین ممکن است Enabled باشد، اما در لحظه فعلی بهدلیل خطا اجرا نشود.
مستندات systemd نیز تأکید میکنند که Enable با Start یکسان نیست؛ Enable اتصالهای لازم برای فعالسازی آینده را ایجاد میکند، اما Start سرویس را در نشست فعلی اجرا میکند. freedesktop.org
آموزش مشاهده سرویسها در لینوکس با systemctl
برای مشاهده سرویسهایی که systemd اکنون در حافظه دارد، اجرا کنید:
systemctl list-units --type=service
بهصورت پیشفرض، این دستور بیشتر Unitهای فعال، در انتظار یا Failed را نمایش میدهد. برای افزودن سرویسهای غیرفعال:
systemctl list-units --type=service --all
طبق مستندات systemctl، ستونهای اصلی خروجی عبارتاند از:
UNIT: نام UnitLOAD: وضعیت بارگذاری فایل UnitACTIVE: وضعیت کلیSUB: وضعیت جزئیتر متناسب با نوع UnitDESCRIPTION: توضیح سرویس
فرمان list-units فقط تمام فایلهای نصبشده را فهرست نمیکند؛ بلکه Unitهایی را نشان میدهد که systemd در حافظه دارد. برای مشاهده Unit Fileهای نصبشده باید از list-unit-files استفاده کرد. freedesktop.org
مشاهده تمام فایلهای سرویس نصبشده
systemctl list-unit-files --type=service
برای مشاهده فقط سرویسهای Enabled:
systemctl list-unit-files --type=service --state=enabled
برای مشاهده سرویسهای Disabled:
systemctl list-unit-files --type=service --state=disabled
جستوجوی نام یک سرویس
میتوانید خروجی را با ابزارهایی مانند grep محدود کنید:
systemctl list-unit-files --type=service | grep nginx
در بسیاری از نسخهها، الگوی مستقیم نیز قابل استفاده است:
systemctl list-unit-files 'nginx*'
قبل از مدیریت یک سرویس، نام دقیق Unit را از همین خروجی پیدا کنید.
مطالعه بیشتر: SSH چیست و چگونه به سرور لینوکس متصل شویم
بررسی وضعیت سرویس با systemctl status
برای مشاهده وضعیت یک سرویس:
sudo systemctl status nginx
این دستور معمولاً اطلاعات زیر را نمایش میدهد:
- نام و توضیح Unit
- محل فایل سرویس
- وضعیت Loaded
- وضعیت Active
- زمان شروع یا توقف
- شناسه پردازش اصلی
- بخشی از گزارشهای اخیر
- نتیجه آخرین اجرا
اگر خروجی در حالت Pager باز شد، با کلید q از آن خارج شوید. برای نمایش بدون Pager:
sudo systemctl --no-pager status nginx
استفاده از status فقط برای سرویسهای خراب نیست. پیش از Restart یا تغییر تنظیمات نیز وضعیت سرویس را ثبت کنید تا بتوانید حالت قبل و بعد را مقایسه کنید.
بررسی سریع فعالبودن سرویس
systemctl is-active nginx
خروجی میتواند active، inactive، failed یا وضعیت دیگری باشد. این فرمان برای اسکریپتها نیز مناسب است، زیرا علاوه بر متن خروجی، کد خروج وضعیت ارائه میکند.
برای استفاده در شرط Shell:
if systemctl is-active --quiet nginx; then
echo "Service is active"
else
echo "Service is not active"
fi
متن پیام نمونه است و میتواند متناسب با اسکریپت تغییر کند.
بررسی Enable بودن سرویس
systemctl is-enabled nginx
نتیجه ممکن است enabled، disabled، static، masked یا حالت دیگری باشد. وضعیت static الزاماً خطا نیست؛ چنین Unitی ممکن است توسط وابستگی، Socket یا Unit دیگری فعال شود و بخش نصب لازم برای Enable مستقل را نداشته باشد. freedesktop.org
دستورات Start، Stop، Restart و Reload
جدول زیر مهمترین عملیات روزمره را مقایسه میکند:
| فرمان | عملکرد | نکته مهم |
|---|---|---|
start |
راهاندازی سرویس | اجرای خودکار در Boot را فعال نمیکند |
stop |
توقف سرویس | ممکن است سایت یا اتصال شما را قطع کند |
restart |
توقف و شروع دوباره | معمولاً وقفه کوتاهی ایجاد میکند |
reload |
بارگذاری مجدد تنظیمات | فقط در صورت پشتیبانی سرویس |
reload-or-restart |
Reload یا در صورت نیاز Restart | برای همه سناریوها بدون بررسی مناسب نیست |
try-restart |
Restart فقط اگر سرویس فعال باشد | برای تغییرات کنترلشده مفید است |
برای مشاهده سرویسهای سرور مجازی، انتخاب سیستمعامل و دریافت خدمات مدیریت زیرساخت میتوانید راهکارهای شرکت تجارت الکترونیک نوژن را بررسی کنید. سطح مدیریت موردنیاز به تجربه تیم شما در systemd، شبکه و امنیت لینوکس بستگی دارد.
مطالعه بیشتر: خرید سرور مجازی لینوکس
راهاندازی سرویس
sudo systemctl start nginx
سپس وضعیت را بررسی کنید:
sudo systemctl status nginx
Start فقط سرویس را در وضعیت فعلی سیستم اجرا میکند و بهتنهایی تضمین نمیکند که سرویس پس از Reboot نیز فعال شود.
توقف سرویس
sudo systemctl stop nginx
پیش از Stop کردن SSH، فایروال، شبکه، دیتابیس یا وبسرور، پیامد آن را بررسی کنید. اگر از راه دور متصل هستید، توقف سرویس SSH ممکن است اتصالهای جدید را ناممکن کند.
راهاندازی مجدد
sudo systemctl restart nginx
Restart سرویس را متوقف و دوباره اجرا میکند. اگر فایل تنظیمات دارای خطا باشد، احتمال دارد سرویس پس از توقف دیگر بالا نیاید.
قبل از Restart سرویسهای مهم، در صورت وجود از ابزار آزمایش تنظیمات همان نرمافزار استفاده کنید. برای نمونه، نام و فرمان آزمایش وبسرورها با یکدیگر متفاوت است و باید از مستندات همان سرویس استفاده شود.
بارگذاری مجدد تنظیمات
sudo systemctl reload nginx
Reload برای سرویسهایی کاربرد دارد که قابلیت دریافت مجدد تنظیمات بدون Restart کامل را فراهم کردهاند. اگر سرویس Reload را پشتیبانی نکند، فرمان با خطا مواجه میشود.
گزینه جایگزین:
sudo systemctl reload-or-restart nginx
این دستور در صورت امکان Reload انجام میدهد و در غیر این صورت ممکن است سرویس را Restart کند. چون Restart میتواند وقفه ایجاد کند، قبل از استفاده رفتار آن را در سرویس موردنظر بررسی کنید.
Enable و Disable سرویسها
برای فعالکردن شروع خودکار سرویس:
sudo systemctl enable nginx
این دستور سرویس را لزوماً همان لحظه Start نمیکند. برای Enable و Start همزمان:
sudo systemctl enable --now nginx
برای حذف شروع خودکار:
sudo systemctl disable nginx
Disable نیز سرویس در حال اجرا را لزوماً Stop نمیکند. برای Disable و Stop همزمان:
sudo systemctl disable --now nginx
مستندات systemctl بیان میکنند که Enable پیوندهای تعریفشده در بخش [Install] را ایجاد میکند، درحالیکه Disable این پیوندها را حذف میکند. Disable بهخودیخود به معنای توقف سرویس فعال نیست. freedesktop.org
جدول تصمیمگیری Start و Enable
| نیاز | دستور مناسب |
|---|---|
| اجرای سرویس فقط در حال حاضر | systemctl start SERVICE |
| اجرا در Bootهای بعدی | systemctl enable SERVICE |
| اجرا اکنون و در Boot | systemctl enable --now SERVICE |
| توقف فعلی بدون تغییر Boot | systemctl stop SERVICE |
| جلوگیری از شروع خودکار آینده | systemctl disable SERVICE |
| توقف فعلی و غیرفعالکردن Boot | systemctl disable --now SERVICE |
تفاوت Disable و Mask
Disable فقط پیوندهای Enable را حذف میکند. در این وضعیت ممکن است سرویس همچنان بهصورت دستی، از طریق وابستگی یا توسط Unit دیگری فعال شود.
Mask محدودیت شدیدتری ایجاد میکند:
sudo systemctl mask SERVICE
در این حالت Unit معمولاً به /dev/null پیوند داده میشود و تلاش برای Start آن شکست میخورد. مستندات systemd نیز Mask را نسخه قویتر Disable معرفی میکنند و درباره استفاده محتاطانه از آن هشدار میدهند. freedesktop.org
برای برداشتن Mask:
sudo systemctl unmask SERVICE
سپس در صورت نیاز سرویس را Start یا Enable کنید:
sudo systemctl start SERVICE
سرویسهای حیاتی را فقط زمانی Mask کنید که وابستگیها و پیامدهای توقف آنها را میشناسید.
مشاهده سرویسهای Failed
برای نمایش Unitهای Failed:
systemctl --failed
یا فقط سرویسهای Failed:
systemctl list-units --type=service --state=failed
وضعیت Failed میتواند در اثر خروج برنامه با کد خطا، Crash، Timeout، تنظیمات نامعتبر یا تکرار بیشازحد راهاندازی ایجاد شود. freedesktop.org
پس از رفع علت خطا، سرویس را Restart کنید:
sudo systemctl restart SERVICE
برای پاککردن وضعیت Failed ثبتشده:
sudo systemctl reset-failed SERVICE
reset-failed مشکل سرویس را برطرف نمیکند؛ فقط وضعیت شکست ثبتشده و برخی شمارندههای مرتبط را بازنشانی میکند. ابتدا باید علت اصلی را از گزارشها و تنظیمات پیدا کنید.
مشاهده فایل و تنظیمات Unit
برای مشاهده فایل اصلی Unit و Drop-inهای مرتبط:
systemctl cat nginx
برای دیدن مسیر Fragment اصلی:
systemctl show -p FragmentPath nginx
برای مشاهده تمام Propertyهای Unit:
systemctl show nginx
خروجی show برای پردازش ماشینی و عیبیابی دقیق مناسبتر از status است. برای نمایش یک Property خاص:
systemctl show -p MainPID nginx
یا:
systemctl show -p ActiveState -p SubState nginx
فایلهای متعلق به بسته را مستقیماً در مسیرهای سیستمی ویرایش نکنید؛ زیرا ممکن است هنگام بهروزرسانی جایگزین شوند. برای تغییر تنظیمات systemd بهتر است از Drop-in استفاده شود.
ساخت Override با systemctl edit
برای ایجاد تنظیمات تکمیلی یک سرویس:
sudo systemctl edit nginx
این فرمان معمولاً یک فایل Drop-in در ساختاری شبیه مسیر زیر ایجاد میکند:
/etc/systemd/system/nginx.service.d/override.conf
داخل Override فقط گزینههایی را قرار دهید که واقعاً باید تغییر کنند. ساختار گزینهها به نوع Unit و نیاز سرویس بستگی دارد.
پس از ذخیره Override، معمولاً باید تنظیمات مدیر systemd دوباره خوانده شوند:
sudo systemctl daemon-reload
سپس سرویس را در صورت نیاز Restart کنید:
sudo systemctl restart nginx
قبل از اعمال Override روی سرویس حیاتی، فایل فعلی را با systemctl cat بررسی کنید و راه بازگشت داشته باشید.
daemon-reload چه کاری انجام میدهد؟
فرمان زیر فایلهای Unit و وابستگیهای systemd را دوباره بارگذاری میکند:
sudo systemctl daemon-reload
این فرمان با Reload کردن خود سرویس متفاوت است:
systemctl daemon-reloadتغییرات فایلهای Unit را به systemd معرفی میکند.systemctl reload SERVICEاز خود برنامه میخواهد تنظیمات برنامه را دوباره بخواند.systemctl restart SERVICEپردازش سرویس را از نو اجرا میکند.
اگر فقط فایل تنظیمات Nginx، پایگاه داده یا برنامه را تغییر دادهاید، daemon-reload الزاماً لازم نیست. این فرمان بیشتر زمانی کاربرد دارد که Unit File، Drop-in یا ساختار وابستگی systemd تغییر کرده باشد.
مشاهده وابستگیهای سرویس
برای نمایش وابستگیهای یک Unit:
systemctl list-dependencies nginx
برای نمایش وابستگی معکوس، یعنی Unitهایی که به سرویس موردنظر وابستهاند:
systemctl list-dependencies --reverse nginx
این بررسی پیش از Stop، Disable یا Mask کردن یک سرویس اهمیت دارد. ممکن است یک Unit ظاهراً مستقل، پیشنیاز چند سرویس دیگر باشد.
برای مشاهده علت احتمالی فعالشدن خودکار یک سرویس، Socketها، Timerها، Pathها و وابستگیهای آن را نیز بررسی کنید.
مشاهده گزارش سرویس با journalctl
خروجی systemctl status فقط بخشی از گزارشهای اخیر را نشان میدهد. برای بررسی کاملتر یک Unit از journalctl استفاده کنید:
sudo journalctl -u nginx
مشاهده گزارش از Boot فعلی:
sudo journalctl -u nginx -b
نمایش آخرین خطوط:
sudo journalctl -u nginx -n 100
دنبالکردن گزارشها بهصورت زنده:
sudo journalctl -u nginx -f
نمایش گزارش از زمان مشخص:
sudo journalctl -u nginx --since "30 minutes ago"
برای خروج از حالت دنبالکردن زنده، کلیدهای Ctrl+C را فشار دهید.
گزارشها ممکن است حاوی IP، مسیر فایل، نام کاربری یا اطلاعات فنی حساس باشند. پیش از ارسال آنها برای دیگران، دادههای محرمانه را حذف کنید.
مطالعه بیشتر: نصب و تنظیم Fail2ban برای محافظت از SSH
روش اصولی عیبیابی سرویس Failed
هنگامی که یک سرویس اجرا نمیشود، تغییرات تصادفی یا Restart مکرر معمولاً کمکی نمیکند. مراحل زیر را بهترتیب انجام دهید.
مرحله اول: مشاهده وضعیت
sudo systemctl status SERVICE --no-pager
به پیام خطا، کد خروج، زمان شکست و مسیر Unit توجه کنید.
مرحله دوم: مشاهده گزارش کاملتر
sudo journalctl -u SERVICE -b -n 100 --no-pager
اگر خطا هنگام Boot رخ داده باشد، گزارش Boot فعلی اهمیت بیشتری دارد.
مرحله سوم: بررسی فایل Unit
systemctl cat SERVICE
Overrideها، مسیر ExecStart، کاربر اجراکننده و وابستگیها را بررسی کنید.
مرحله چهارم: آزمایش تنظیمات خود برنامه
اگر نرمافزار فرمان مخصوص بررسی پیکربندی دارد، پیش از Restart آن را اجرا کنید. فرمان آزمایش هر برنامه متفاوت است و نباید نمونه یک سرویس را برای سرویس دیگری به کار برد.
مرحله پنجم: بررسی فایل و Permission
مسیر فایل اجرایی، فایل تنظیمات و پوشههای موردنیاز را بررسی کنید:
ls -l /path/to/file
همچنین کاربری که سرویس با آن اجرا میشود باید دسترسی لازم را داشته باشد، اما نباید مجوزهای گستردهتر از نیاز دریافت کند.
مرحله ششم: Restart و بررسی مجدد
پس از رفع خطا:
sudo systemctl restart SERVICE
sudo systemctl status SERVICE --no-pager
اگر وضعیت سالم شد، عملکرد واقعی سرویس را نیز آزمایش کنید. Active بودن پردازش همیشه به معنای درستبودن پاسخ برنامه یا دسترسی شبکه نیست.
مطالعه بیشتر: دستورات chmod و chown در لینوکس
سناریوی عملی: مدیریت یک وبسرور
فرض کنید پس از تغییر فایل تنظیمات وبسرور میخواهید سرویس را بهشکل ایمن بارگذاری کنید.
ابتدا وضعیت فعلی را بررسی کنید:
sudo systemctl status nginx --no-pager
سپس با ابزار خود Nginx صحت پیکربندی را آزمایش کنید:
sudo nginx -t
اگر آزمایش موفق بود، تنظیمات را Reload کنید:
sudo systemctl reload nginx
در پایان وضعیت و گزارشهای جدید را ببینید:
sudo systemctl status nginx --no-pager
sudo journalctl -u nginx -n 30 --no-pager
اگر نرمافزار دیگری استفاده میکنید، فرمان آزمایش و نام Unit را با همان سرویس تطبیق دهید.
اشتباهات رایج در مدیریت سرویسها
Restart بدون بررسی تنظیمات
اگر پیکربندی خراب باشد، Restart ممکن است سرویس فعال را متوقف کند و نسخه جدید دیگر راهاندازی نشود. ابتدا از فرمان بررسی تنظیمات همان برنامه استفاده کنید.
اشتباهگرفتن Enable با Start
Enable برای شروع خودکار آینده است و لزوماً سرویس را اکنون اجرا نمیکند. برای انجام هر دو عملیات از enable --now استفاده کنید.
Disable کردن و انتظار Stop فوری
Disable شروع خودکار را حذف میکند، اما سرویس فعال ممکن است همچنان اجرا شود. در صورت نیاز و پس از بررسی از disable --now استفاده کنید.
Mask کردن سرویس بدون بررسی وابستگی
Mask تمام تلاشهای معمول برای راهاندازی Unit را مسدود میکند. این کار میتواند سرویسهای وابسته را نیز مختل کند.
ویرایش مستقیم Unit اصلی
فایلهای متعلق به بسته ممکن است در بهروزرسانی بعدی جایگزین شوند. برای تغییرات محلی از systemctl edit و Drop-in استفاده کنید.
توقف SSH روی سرور راه دور
اگر فقط از طریق SSH به سرور دسترسی دارید، Stop یا Mask کردن سرویس SSH میتواند اتصال مجدد را ناممکن کند. پیش از تغییر، نشست فعال و کنسول اضطراری ارائهدهنده را در دسترس نگه دارید.
مطالعه بیشتر: آموزش ساخت User و دادن دسترسی Sudo در Ubuntu
مطالعه بیشتر: امنیت سرور لینوکس بعد از راهاندازی
چکلیست مدیریت امن سرویسها
- نام دقیق Unit پیدا شده است.
- وضعیت فعلی با
systemctl statusثبت شده است. - فایل Unit و Overrideها با
systemctl catبررسی شدهاند. - وابستگیها پیش از Stop یا Mask بررسی شدهاند.
- فایل تنظیمات برنامه پیش از Restart آزمایش شده است.
- برای سرویس راه دور، دسترسی کنسول اضطراری وجود دارد.
- تفاوت Start و Enable در نظر گرفته شده است.
- از Mask فقط در صورت ضرورت استفاده شده است.
- پس از تغییر Unit،
daemon-reloadاجرا شده است. - گزارش سرویس با
journalctlبررسی شده است. - پس از راهاندازی، عملکرد واقعی برنامه آزمایش شده است.
- اطلاعات حساس پیش از اشتراکگذاری Log حذف شدهاند.
جمع بندی
در آموزش مشاهده و مدیریت سرویسها در لینوکس با systemctl یاد گرفتیم که status برای بررسی وضعیت، start و stop برای کنترل اجرای فعلی و enable و disable برای مدیریت فعالسازی آینده استفاده میشوند. Running بودن یک سرویس با Enabled بودن آن یکسان نیست.
برای تغییر فایلهای Unit بهتر است از systemctl edit استفاده کنید و پس از آن daemon-reload را اجرا نمایید. در مقابل، Reload یک سرویس به معنای درخواست از همان برنامه برای خواندن مجدد تنظیمات است.
هنگام بروز خطا، ابتدا systemctl status و سپس گزارشهای journalctl را بررسی کنید. Restart مکرر بدون شناخت علت، ممکن است پیام اصلی خطا را پنهان کند یا باعث وقفه بیشتر شود.
اگر برای عیبیابی سرویسهای Failed، تنظیم systemd یا مدیریت سرور لینوکس به پشتیبانی نیاز دارید، میتوانید با شرکت تجارت الکترونیک نوژن تماس بگیرید و خدمات سرور مجازی و زیرساخت را متناسب با نیاز پروژه بررسی کنید.
سؤالات متداول
چگونه فهرست سرویسهای لینوکس را مشاهده کنیم؟
از systemctl list-units --type=service برای سرویسهای موجود در حافظه و از systemctl list-unit-files --type=service برای فایلهای سرویس نصبشده استفاده کنید.
تفاوت systemctl start و enable چیست؟
start سرویس را اکنون اجرا میکند. enable شرایط اجرای خودکار آن را برای Boot یا هدف تعیینشده فراهم میکند، اما لزوماً همان لحظه سرویس را Start نمیکند.
چگونه یک سرویس را همزمان Start و Enable کنیم؟
از دستور زیر استفاده کنید:
sudo systemctl enable --now SERVICE
نام SERVICE را با Unit واقعی جایگزین کنید.
تفاوت Restart و Reload چیست؟
Restart پردازش سرویس را متوقف و دوباره اجرا میکند. Reload در صورت پشتیبانی برنامه، تنظیمات را بدون Restart کامل دوباره میخواند.
چگونه سرویسهای Failed را مشاهده کنیم؟
دستور systemctl --failed یا systemctl list-units --type=service --state=failed را اجرا کنید.
daemon-reload چه زمانی لازم است؟
وقتی Unit File، Drop-in یا تنظیمات مربوط به systemd تغییر کرده باشد، از systemctl daemon-reload استفاده کنید. تغییر فایل تنظیمات خود برنامه الزاماً به این فرمان نیاز ندارد.
چگونه گزارش یک سرویس را مشاهده کنیم؟
از journalctl -u SERVICE استفاده کنید. برای گزارش Boot فعلی میتوانید گزینه -b و برای دنبالکردن زنده گزینه -f را اضافه کنید.
