.\" -*- nroff -*- .TH SYSTEMTAP 8 .SH "نام (NAME)" systemtap-service \- اسکریپت راه‌انداز و سرویس systemd برای SystemTap .\" macros .de SAMPLE .nr oldin \\n(.i .br .RS .nf .nh .. .de ESAMPLE .hy .fi .RE .in \\n[oldin]u .. .SH "خلاصه دستور (SYNOPSIS)" .B systemtap-service .IR COMMAND " [" OPTIONS "] [" SCRIPT ...] .B service systemtap .IR COMMAND " [" OPTIONS "] [" SCRIPT ...] .SH "توضیحات (DESCRIPTION)" هدف اسکریپت راه‌انداز SystemTap فراهم کردن راهکاری برای اجرای اسکریپت‌ها به عنوان یک سرویس و کنترل آسان و مجزای هر یک از آن‌ها است. اسکریپت‌ها می‌توانند طوری پیکربندی شوند که با درخواست دستی کاربر یا هنگام راه‌اندازی سیستم اجرا شوند. در سیستم‌های مبتنی بر dracut، امکان ادغام اسکریپت‌ها در initramfs و اجرای آن‌ها در مراحل اولیه بوت (early-boot) نیز وجود دارد. .PP اسکریپت راه‌انداز SystemTap را می‌توان به صورت دستی با استفاده از دستور .B systemtap-service فراخوانی کرد. در سیستم‌های مبتنی بر systemd، این اسکریپت توسط .B systemctl و با فایل سرویس \fBsystemtap.service\fR کنترل می‌شود. .PP پارامترها و گزینه‌های گوناگونی برای تغییر رفتار کلی سیستم و همچنین رفتار هر اسکریپت در دسترس است. می‌توان بین اسکریپت‌ها وابستگی تعریف کرد تا شروع یکی موجب اجرای سایر موارد شود. .PP فایل پیکربندی اسکریپت راه‌انداز در مسیر \fB/etc/systemtap/config\fR قرار دارد. پارامترهای مجاز با جزئیات در بخش «پارامترهای سراسری (GLOBAL PARAMETERS)» شرح داده شده‌اند. .PP اسکریپت‌ها باید در دایرکتوری \fB/etc/systemtap/script.d\fR قرار گیرند و پسوند \fB.stp\fR داشته باشند. هنگام ارجاع به آن‌ها در خط فرمان، نیازی به درج پسوند \fB.stp\fR نیست. نام اسکریپت‌ها فقط می‌تواند شامل نویسه‌های الفبایی‌عددی (و '_') باشد و نباید با عدد شروع شود. دایرکتوری اسکریپت‌ها را می‌توان با تنظیم پارامتر SCRIPT_PATH در فایل پیکربندی تغییر داد. .SH "دستورات (COMMANDS)" یکی از دستورات زیر باید مشخص شود: .TP .B start اجرای \fISCRIPT\fRها. اگر هیچ اسکریپتی مشخص نشده باشد، اسکریپت‌های تعیین‌شده در پیکربندی DEFAULT_START اجرا می‌شوند. اگر DEFAULT_START تنظیم نشده باشد، تمام اسکریپت‌های موجود در دایرکتوری اسکریپت‌ها اجرا خواهند شد. برای اسکریپت‌هایی که از قبل اجرا شده‌اند، این دستور نادیده گرفته می‌شود. در صورت عدم موفقیت در اجرای اسکریپت‌ها، دستور با خطا مواجه خواهد شد (همچنین به پیکربندی PASSALL مراجعه کنید). .PP اگر گزینه پیکربندی AUTOCOMPILE فعال باشد، در صورت برقرار بودن یکی از شرایط زیر، دستور سعی می‌کند اسکریپت‌های مشخص‌شده را کامپایل یا به‌روزرسانی کند: .RS .IP - 2 فایل کش کامپایل‌شده وجود نداشته باشد. .IP - زمان ویرایش (mtime) فایل اسکریپت اصلی جدیدتر از زمان کش اسکریپت کامپایل‌شده باشد. .IP - گزینه‌های stap مشخص‌شده برای کامپایل اسکریپت تغییر کرده باشند (همچنین به بخش «پارامترهای اسکریپت (SCRIPT PARAMETERS)» مراجعه کنید). .IP - نتیجه دستور `uname -a` تغییر کرده باشد. .RE .TP .B stop متوقف کردن \fISCRIPT\fRها. اگر هیچ اسکریپتی مشخص نشده باشد، تمام اسکریپت‌های در حال اجرا متوقف می‌شوند. برای اسکریپت‌هایی که از قبل متوقف شده‌اند، این دستور نادیده گرفته می‌شود. در صورت عدم موفقیت در متوقف کردن اسکریپت‌ها، دستور با خطا مواجه خواهد شد (همچنین به پیکربندی PASSALL مراجعه کنید). .TP .B restart متوقف کردن و اجرای مجدد \fISCRIPT\fRها. .TP .B status نمایش وضعیت \fISCRIPT\fRها و وابستگی‌های آن‌ها. .TP .B compile کامپایل کردن \fISCRIPT\fRها بدون شروع اجرای آن‌ها. اگر اسکریپت‌ها از قبل کامپایل شده باشند، پیش از بازنویسی کش، برای تأیید پیام داده می‌شود. کامپایل برای هسته فعلی، یا نسخه انتشار هسته مشخص‌شده با گزینه \fB-r\fR انجام می‌شود. .TP .B onboot قرار دادن \fISCRIPT\fRها به عنوان بخشی از initramfs به طوری که در مراحل اولیه فرآیند بوت اجرا شوند. این دستور فقط در سیستم‌های مبتنی بر dracut در دسترس است. اگر هیچ اسکریپتی مشخص نشده باشد، یک initramfs عادی و فاقد هرگونه فایل SystemTap ایجاد می‌شود. .PP تصویر initramfs برای هسته فعلی، یا نسخه انتشار هسته مشخص‌شده توسط گزینه \fB-r\fR ایجاد می‌شود. مسیر فایل initramfs ایجادشده به صورت پیش‌فرض \fB/boot/initramfs-KVER.img\fR است، که در آن KVER خروجی دستور `uname -r` می‌باشد. بوت‌لودر نیز (با استفاده از \fInew-kernel-pkg\fR(8)) به‌روزرسانی می‌شود تا مدخل مربوط به هسته از فایل جدید initramfs استفاده کند. از گزینه \fB-o\fR برای تعیین مسیری متفاوت استفاده کنید (در این حالت پیکربندی بوت‌لودر به‌روزرسانی نخواهد شد). .PP اگر فایل خروجی از قبل وجود داشته باشد، بازنویسی می‌شود مگر آنکه سوییچ \fB-b\fR داده شده باشد، که در این صورت به جای بازنویسی، پسوند \fB.bak\fR به انتهای نام فایل اضافه می‌شود. با این حال، اگر نسخه‌ای با پسوند \fB.bak\fR از قبل وجود داشته باشد، فایل پشتیبان بازنویسی نخواهد شد. .PP هشدار: از گزینه \fB-o\fR دستور \fIstap\fR(1) همراه با اسکریپت‌های onboot استفاده نکنید، زیرا اسکریپت حتی پیش از مانت شدن فایل‌سیستم ریشه اجرا می‌شود. در صورت نیاز به فضای بیشتر، اندازه بافر را افزایش دهید. .TP .B cleanup حذف \fISCRIPT\fRهای کامپایل‌شده از حافظه کش. اگر هیچ اسکریپتی مشخص نشود، تمام اسکریپت‌های کامپایل‌شده حذف می‌شوند. تنها کش مربوط به هسته فعلی، یا نسخه انتشار هسته مشخص‌شده با گزینه \fB-r\fR حذف خواهد شد. قبل از حذف، برای تأیید پیام داده می‌شود. .SH "گزینه‌ها (OPTIONS)" بسیاری از این دستورات می‌توانند گزینه‌هایی را نیز دریافت کنند. با این حال، از آنجا که کاربران نمی‌توانند این گزینه‌ها را هنگام بوت ارسال کنند، آن‌ها فقط برای مدیریت اسکریپت‌ها پس از بوت و برای آزمودن در نظر گرفته شده‌اند. گزینه‌های موجود عبارتند از: .TP .BI "-c " CONFIG_FILE مشخص کردن یک فایل پیکربندی دیگر به جای فایل پیش‌فرض. .TP .B -R هنگام استفاده از دستورات \fBstart\fR و \fBstop\fR ، وابستگی‌های اسکریپت‌ها را نیز (به صورت بازگشتی) در بر می‌گیرد. .TP .BI "-r " KERNEL_RELEASE هنگام استفاده از دستورات \fBcompile\fR ، \fBonboot\fR و \fBcleanup\fR ، نسخه هسته هدف را به جای استفاده از هسته فعلی مشخص می‌کند. این مقدار باید در همان قالب خروجی `uname -r` باشد. .TP .B -y پاسخ بله (yes) به تمام پرسش‌های تأییدیه. .TP .BI "-o " PATH.IMG هنگام استفاده از دستور \fBonboot\fR ، مسیر خروجی فایل initramfs ایجادشده را مشخص می‌کند. در صورت مشخص شدن، پیکربندی بوت‌لودر به‌روزرسانی نمی‌شود. .TP .B -b هنگام استفاده از دستور \fBonboot\fR ، با افزودن پسوند \fB.bak\fR به جای بازنویسی، از تصویر initramfs موجود یک نسخه پشتیبان تهیه می‌کند. بدون این گزینه، فایل initramfs بازنویسی خواهد شد. .SH "پارامترهای سراسری (GLOBAL PARAMETERS)" این پارامترها بر رفتار کلی سرویس اسکریپت راه‌انداز SystemTap تأثیر می‌گذارند. آن‌ها را می‌توان در فایل پیکربندی تعیین کرد. .TP .B SCRIPT_PATH مسیر مطلق دایرکتوری اسکریپت‌ها را مشخص می‌کند. این‌ها اسکریپت‌هایی هستند که اسکریپت راه‌انداز می‌تواند روی آن‌ها عملیات انجام دهد. اسکریپت‌ها باید پسوند \fB.stp\fR داشته باشند. مسیر پیش‌فرض \fB/etc/systemtap/script.d\fR است. .TP .B CONFIG_PATH مسیر مطلق دایرکتوری پیکربندی اسکریپت‌ها را مشخص می‌کند. این فایل‌های پیکربندی شامل گزینه‌هایی برای اسکریپت‌های مشخص هستند. آن‌ها باید پسوند \fB.conf\fR داشته باشند. مسیر پیش‌فرض \fB/etc/systemtap/conf.d\fR است. .TP .B CACHE_PATH مسیر مطلق دایرکتوری کش را مشخص می‌کند. مسیر پیش‌فرض \fB/var/cache/systemtap\fR است. .TP .B TEMP_PATH مسیر مطلق دایرکتوری موقتی که SystemTap برای کامپایل اسکریپت‌ها پوشه‌های موقت در آن ایجاد می‌کند را مشخص می‌سازد. مسیر پیش‌فرض \fB/tmp\fR است. .TP .B STAT_PATH مسیر مطلق دایرکتوری حاوی فایل‌های PID که برای ردیابی وضعیت اسکریپت‌های SystemTap به کار می‌روند را مشخص می‌کند. مسیر پیش‌فرض \fB/var/run/systemtap\fR است. .TP .B LOG_FILE مسیر مطلق فایل لاگ را مشخص می‌کند. تمام پیام‌ها، از جمله خطاهای کامپایل و زمان اجرا، به این فایل ارسال می‌شوند. مسیر پیش‌فرض \fB/var/log/systemtap.log\fR است. .TP .B PASSALL اگر روی \fByes\fR تنظیم شده باشد، دستورات اسکریپت راه‌انداز که روی چند اسکریپت عملیات انجام می‌دهند، در صورت عدم امکان انجام عملیات روی حداقل یک اسکریپت، به عنوان شکست‌خورده گزارش می‌شوند. اگر روی \fBno\fR تنظیم شود، تنها یک هشدار صادر می‌شود. مقدار پیش‌فرض \fByes\fR است. .TP .B RECURSIVE اگر روی \fByes\fR تنظیم شده باشد، اسکریپت راه‌انداز همواره وابستگی‌های اسکریپت را به صورت بازگشتی دنبال خواهد کرد. این بدان معناست که نیازی به تعیین گزینه \fB-R\fR نیست. این فلگ تنها در صورتی مؤثر است که اسکریپت(ها) را از طریق خط فرمان مشخص کنید. مقدار پیش‌فرض \fBno\fR است. .TP .B AUTOCOMPILE اگر روی \fByes\fR تنظیم شده باشد، در صورت عدم وجود کش معتبر، اسکریپت راه‌انداز در هنگام نیاز به صورت خودکار اقدام به کامپایل اسکریپت‌های مشخص‌شده می‌کند. در غیر این صورت، دستور مربوطه به سادگی با شکست مواجه می‌شود. مقدار پیش‌فرض \fByes\fR است. .TP .B DEFAULT_START اسکریپت‌هایی را مشخص می‌کند که باید به طور پیش‌فرض راه‌اندازی شوند. در صورت عدم درج (یا خالی بودن)، تمام اسکریپت‌های موجود در دایرکتوری اسکریپت‌ها راه‌اندازی خواهند شد. مقدار پیش‌فرض \fB""\fR است. .TP .B ALLOW_CACHEONLY اگر روی \fByes\fR تنظیم شود، اسکریپت راه‌انداز اجازه عملیات روی اسکریپت‌هایی را که در دایرکتوری کش قرار دارند اما در دایرکتوری اسکریپت‌ها موجود نیستند نیز می‌دهد. مقدار پیش‌فرض \fBno\fR است. .PP هشدار: با فعال بودن این گزینه، اسکریپت راه‌انداز ممکن است کش‌های منسوخ و غیرمنتظره را بارگذاری کند. پیش از فعال کردن این گزینه، دایرکتوری کش باید بررسی شود. .TP .B LOG_BOOT_ERR از آنجا که اسکریپت‌های زمان بوت پیش از مانت شدن فایل‌سیستم ریشه اجرا می‌شوند، خروجی stderr دستور staprun را نمی‌توان طبق معمول در LOG_FILE ثبت کرد. با این حال، با تنظیم LOG_BOOT_ERR روی \fByes\fR می‌توان خروجی لاگ را در مسیر /run/systemtap/$script.log ذخیره کرد. اگر STAT_PATH با مقدار پیش‌فرض تفاوت داشته باشد، فایل‌های لاگ پس از اجرای هر یک از دستورات اسکریپت راه‌انداز به آنجا منتقل خواهند شد. مقدار پیش‌فرض \fBno\fR است. .PP نمونه‌ای از یک فایل پیکربندی سراسری در اینجا آمده است: .SAMPLE SCRIPT_PATH=/var/systemtap/script.d/ PASSALL=yes RECURSIVE=no .ESAMPLE .SH "پارامترهای اسکریپت (SCRIPT PARAMETERS)" این پارامترها بر کامپایل یا رفتار زمان اجرای اسکریپت‌های خاص SystemTap تأثیر می‌گذارند. آن‌ها باید در فایل‌های پیکربندی واقع در دایرکتوری CONFIG_PATH قرار گیرند. .TP .B