'\" t .TH "SYSTEMD\-RUN" "1" "" "systemd 261.2" "systemd-run" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" systemd-run \- اجرای برنامه‌ها در واحدهای موقت scope، واحدهای service، یا واحدهای service راه‌اندازی‌شده با path، socket یا timer .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBsystemd\-run\fR\ 'u \fBsystemd\-run\fR [OPTIONS...] \fICOMMAND\fR\ [ARGS...] .HP \w'\fBsystemd\-run\fR\ 'u \fBsystemd\-run\fR [OPTIONS...] [PATH\ OPTIONS...] {\fICOMMAND\fR\ [ARGS...]} .HP \w'\fBsystemd\-run\fR\ 'u \fBsystemd\-run\fR [OPTIONS...] [SOCKET\ OPTIONS...] {\fICOMMAND\fR\ [ARGS...]} .HP \w'\fBsystemd\-run\fR\ 'u \fBsystemd\-run\fR [OPTIONS...] [TIMER\ OPTIONS...] {\fICOMMAND\fR\ [ARGS...]} .SH "توضیحات (DESCRIPTION)" .PP \fBsystemd\-run\fR می‌تواند برای ایجاد و راه‌اندازی یک واحد موقت \&.service یا \&.scope و اجرای \fICOMMAND\fR مشخص‌شده در آن استفاده شود\&. همچنین می‌تواند برای ایجاد و راه‌اندازی یک واحد موقت \&.path، \&.socket یا \&.timer استفاده شود که هنگام سپری شدن زمان یا وقوع رویداد، یک واحد \&.service را فعال می‌کند\&. .PP اگر دستوری به عنوان واحد سرویس موقت اجرا شود، مانند هر سرویس دیگری توسط مدیر سرویس راه‌اندازی و مدیریت خواهد شد و بنابراین مانند هر واحد دیگری در خروجی \fBsystemctl list\-units\fR نمایش داده می‌شود\&. این دستور در یک محیط اجرایی تمیز و تفکیک‌شده، با مدیر سرویس به عنوان فرآیند والد خود اجرا خواهد شد\&. در این حالت، \fBsystemd\-run\fR سرویس را به صورت ناهمگام در پس‌زمینه راه‌اندازی می‌کند و پس از اینکه دستور اجرای خود را آغاز کرد بازمی‌گردد (مگر اینکه \fB\-\-no\-block\fR، \fB\-\-wait\fR، \fB\-\-pipe\fR یا \fB\-\-pty\fR مشخص شده باشند، زیر را ببینید)\&. .PP اگر دستوری به عنوان واحد scope موقت اجرا شود، توسط خود \fBsystemd\-run\fR به عنوان فرآیند والد اجرا خواهد شد و بنابراین محیط اجرایی فراخواننده را به ارث می‌برد\&. با این حال، فرآیندهای دستور مانند سرویس‌های عادی توسط مدیر سرویس مدیریت می‌شوند و در خروجی \fBsystemctl list\-units\fR نمایش داده خواهند شد\&. اجرا در این حالت همگام است و تنها زمانی بازمی‌گردد که دستور به پایان برسد\&. این حالت از طریق سوئیچ \fB\-\-scope\fR فعال می‌شود (زیر را ببینید)\&. .PP اگر دستوری با گزینه‌های path، socket یا timer مانند \fB\-\-on\-calendar=\fR (زیر را ببینید) اجرا شود، یک واحد موقت path، socket یا timer در کنار واحد سرویس برای دستور مشخص‌شده ایجاد می‌شود\&. تنها واحد موقت path، socket یا timer بلافاصله راه‌اندازی می‌شود و واحد سرویس موقت توسط واحد path، socket یا timer برانگیخته (trigger) خواهد شد\&. اگر گزینه \fB\-\-unit=\fR مشخص شده باشد، \fICOMMAND\fR می‌تواند حذف شود\&. در این حالت، \fBsystemd\-run\fR تنها یک واحد \&.path، \&.socket یا \&.timer ایجاد می‌کند که واحد مشخص‌شده را برمی‌انگیزد\&. .PP به طور پیش‌فرض، سرویس‌های ایجادشده با \fBsystemd\-run\fR دارای نوع پیش‌فرض \fBsimple\fR هستند، برای جزئیات به توضیحات \fIType=\fR در \fBsystemd.service\fR(5) مراجعه کنید\&. توجه داشته باشید که در صورت استفاده از این نوع، مدیر سرویس (و بنابراین دستور \fBsystemd\-run\fR) راه‌اندازی سرویس را به محض موفقیت‌آمیز بودن \fBfork()\fR برای فرآیند اصلی سرویس، یعنی پیش از فراخوانی \fBexecve()\fR، موفقیت‌آمیز تلقی می‌کند و در نتیجه حتی در صورتی که دستور مشخص‌شده نتواند راه‌اندازی شود نیز چنین در نظر می‌گیرد\&. استفاده از نوع سرویس \fBexec\fR (یعنی \fB\-\-property=Type=exec\fR) را در نظر داشته باشید تا اطمینان حاصل شود که \fBsystemd\-run\fR تنها در صورتی با موفقیت بازمی‌گردد که خط فرمان مشخص‌شده با موفقیت راه‌اندازی شده باشد\&. .PP پس از اینکه \fBsystemd\-run\fR دستور را به مدیر سرویس تحویل می‌دهد، مدیر گسترش متغیرها (variable expansion) را انجام می‌دهد\&. این بدان معناست که نویسه‌های دلار ("$") که نباید گسترش یابند باید به صورت "$$" گریز (escape) داده شوند\&. گسترش را می‌توان با استفاده از \fI\-\-expand\-environment=no\fR نیز غیرفعال کرد\&. .SH "گزینه‌ها (OPTIONS)" .PP گزینه‌های زیر پشتیبانی می‌شوند: .PP \fB\-\-scope\fR .RS 4 ایجاد یک واحد موقت \&.scope به جای واحد موقت پیش‌فرض \&.service (بالا را ببینید)\&. .sp افزوده‌شده در نسخه 206\&. .RE .PP \fB\-\-unit=\fR, \fB\-u\fR .RS 4 استفاده از این نام واحد به جای نام تولیدشده خودکار\&. .sp افزوده‌شده در نسخه 206\&. .RE .PP \fB\-\-property=\fR, \fB\-p\fR .RS 4 تنظیم یک ویژگی بر روی واحد scope یا سرویس ایجادشده\&. این گزینه یک انتساب را با همان قالبی که دستور \fBset\-property\fR از \fBsystemctl\fR(1) می‌پذیرد، دریافت می‌کند\&. .sp افزوده‌شده در نسخه 211\&. .RE .PP \fB\-\-description=\fR .RS 4 ارائه توضیحی برای واحد سرویس، scope، path، socket یا timer\&. در صورت مشخص نشدن، از خود دستور به عنوان توضیح استفاده خواهد شد\&. \fIDescription=\fR در \fBsystemd.unit\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 206\&. .RE .PP \fB\-\-slice=\fR .RS 4 قرار دادن واحد جدید \&.service یا \&.scope به عنوان بخشی از برش (slice) مشخص‌شده، به جای system\&.slice (هنگام اجرا در حالت \fB\-\-system\fR) یا برش ریشه (هنگام اجرا در حالت \fB\-\-user\fR)\&. .sp افزوده‌شده در نسخه 206\&. .RE .PP \fB\-\-slice\-inherit\fR .RS 4 قرار دادن واحد جدید \&.service یا \&.scope به عنوان بخشی از برشی که خود \fBsystemd\-run\fR در آن فراخوانی شده است\&. این گزینه می‌تواند با \fB\-\-slice=\fR ترکیب شود، که در این حالت برش مشخص‌شده از طریق \fB\-\-slice=\fR در داخل برشی که دستور \fBsystemd\-run\fR در آن فراخوانی شده قرار می‌گیرد\&. .sp مثال: فرض کنید \fBsystemd\-run\fR در برش foo\&.slice فراخوانی شده و آرگومان \fB\-\-slice=\fR برابر bar باشد\&. در این صورت واحد زیر foo\-bar\&.slice قرار خواهد گرفت\&. .sp افزوده‌شده در نسخه 246\&. .RE .PP \fB\-\-expand\-environment=\fR\fB\fIBOOL\fR\fR .RS 4 گسترش متغیرهای محیطی در آرگومان‌های دستور\&. در صورت فعال بودن (پیش‌فرض)، متغیرهای محیطی مشخص‌شده به صورت "${\fIVARIABLE\fR}" به همان شیوه‌ای گسترش می‌یابند که در دستورات مشخص‌شده از طریق \fIExecStart=\fR در واحدها گسترش می‌یابند\&. با \fI\-\-scope\fR، این گسترش توسط خود \fBsystemd\-run\fR انجام می‌شود، و در موارد دیگر توسط مدیر سرویسی که دستور را ایجاد می‌کند انجام می‌گیرد\&. توجه داشته باشید که این مشابه، اما نه کاملاً یکسان با گسترش متغیرها در \fBbash\fR(1) و سایر پوسته‌ها است\&. .sp برای توضیحات مربوط به گسترش متغیرها به \fBsystemd.service\fR(5) مراجعه کنید\&. غیرفعال کردن گسترش متغیرها زمانی مفید است که دستور مشخص‌شده شامل یا احتمالاً شامل علامت "$" باشد\&. .sp افزوده‌شده در نسخه 254\&. .RE .PP \fB\-r\fR, \fB\-\-remain\-after\-exit\fR .RS 4 پس از خاتمه فرآیند سرویس، سرویس را تا زمانی که صریحاً متوقف شود نگه می‌دارد\&. این ویژگی برای جمع‌آوری اطلاعات زمان اجرا درباره سرویس پس از پایان اجرای آن مفید است\&. همچنین \fIRemainAfterExit=\fR در \fBsystemd.service\fR(5) را ببینید\&. این گزینه ممکن است با \fB\-\-wait\fR، \fB\-\-scope\fR، \fB\-\-pty\fR، \fB\-\-pty\-late\fR یا \fB\-\-pipe\fR ترکیب نشود\&. .sp افزوده‌شده در نسخه 207\&. .RE .PP \fB\-\-send\-sighup\fR .RS 4 هنگام خاتمه دادن به واحد scope یا سرویس، بلافاصله پس از SIGTERM یک SIGHUP ارسال می‌کند\&. این برای نشان دادن قطع شدن ارتباط به پوسته‌ها و فرآیندهای شبه‌پوسته مفید است\&. همچنین \fISendSIGHUP=\fR در \fBsystemd.kill\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 207\&. .RE .PP \fB\-\-service\-type=\fR .RS 4 نوع سرویس را تنظیم می‌کند\&. همچنین \fIType=\fR در \fBsystemd.service\fR(5) را ببینید\&. این گزینه در ارتباط با \fB\-\-scope\fR هیچ اثری ندارد\&. پیش‌فرض \fBsimple\fR است\&. .sp افزوده‌شده در نسخه 211\&. .RE .PP \fB\-\-uid=\fR, \fB\-\-gid=\fR .RS 4 فرآیند سرویس را تحت کاربر و گروه یونیکس مشخص‌شده اجرا می‌کند\&. همچنین \fIUser=\fR و \fIGroup=\fR در \fBsystemd.exec\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 211\&. .RE .PP \fB\-\-nice=\fR .RS 4 فرآیند سرویس را با سطح nice مشخص‌شده اجرا می‌کند\&. همچنین \fINice=\fR در \fBsystemd.exec\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 211\&. .RE .PP \fB\-\-working\-directory=\fR .RS 4 فرآیند سرویس را با دایرکتوری کاری مشخص‌شده اجرا می‌کند\&. همچنین \fIWorkingDirectory=\fR در \fBsystemd.exec\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 240\&. .RE .PP \fB\-\-same\-dir\fR, \fB\-d\fR .RS 4 مشابه \fB\-\-working\-directory=\fR، اما از دایرکتوری کاری فعلی فراخواننده برای اجرای سرویس استفاده می‌کند\&. .sp افزوده‌شده در نسخه 240\&. .RE .PP \fB\-\-root\-directory=\fR .RS 4 فرآیند سرویس را با دایرکتوری ریشه مشخص‌شده اجرا می‌کند\&. همچنین \fIRootDirectory=\fR در \fBsystemd.exec\fR(5) را ببینید\&. .sp توجه داشته باشید که مسیر در داخل فضای نام سیستم فایلی که systemd\-run در آن اجرا می‌شود جستجو می‌شود، که ممکن است با فضای نام سیستم فایلی که فرآیند مدیر در آن در حال اجرا است متفاوت باشد\&. اگر می‌خواهید مسیر در فضای نام سیستم فایل فرآیند مدیر جستجو شود، مستقیماً از ویژگی \fIRootDirectory=\fR استفاده کنید\&. .sp افزوده‌شده در نسخه 259\&. .RE .PP \fB\-\-same\-root\-dir\fR, \fB\-R\fR .RS 4 مشابه \fB\-\-root\-directory=\fR، اما از دایرکتوری ریشه فرآیند systemd\-run به عنوان دایرکتوری ریشه برای اجرای سرویس استفاده می‌کند\&. .sp افزوده‌شده در نسخه 259\&. .RE .PP \fB\-E \fR\fB\fINAME\fR\fR\fB[=\fR\fB\fIVALUE\fR\fR\fB]\fR, \fB\-\-setenv=\fR\fB\fINAME\fR\fR\fB[=\fR\fB\fIVALUE\fR\fR\fB]\fR .RS 4 فرآیند سرویس را با تنظیم متغیر محیطی مشخص‌شده اجرا می‌کند\&. این پارامتر ممکن است بیش از یک بار برای تنظیم چندین متغیر استفاده شود\&. هنگامی که "=" و \fIVALUE\fR حذف شوند، از مقدار متغیر با همان نام در محیط برنامه استفاده خواهد شد\&. .sp همچنین \fIEnvironment=\fR در \fBsystemd.exec\fR(5) را ببینید\&. .sp افزوده‌شده در نسخه 211\&. .RE .PP \fB\-\-pty\fR, \fB\-t\fR .RS 4 هنگام فراخوانی دستور، سرویس موقت ورودی، خروجی و خطای استاندارد خود را از طریق یک دستگاه شبه TTY به ترمینالی که \fBsystemd\-run\fR در آن فراخوانی شده است متصل می‌کند\&. این امکان اجرای برنامه‌هایی را که انتظار ورودی/خروجی تعاملی کاربر را دارند به صورت سرویس فراهم می‌سازد، مانند پوسته‌های تعاملی خط فرمان\&. .sp این گزینه منجر به این می‌شود که \fBsystemd\-run\fR به صورت همگام منتظر خاتمه یافتن سرویس موقت بماند، مشابه با مشخص کردن \fB\-\-wait\fR\&. اگر همراه با \fB\-\-wait\fR مشخص شود، \fBsystemd\-run\fR هنگام قطع ارتباط دستی از دستگاه شبه TTY خارج نخواهد شد\&. .sp توجه داشته باشید که دستور \fBshell\fR از \fBmachinectl\fR(1) معمولاً جایگزین بهتری برای درخواست یک نشست ورود تعاملی جدید بر روی میزبان محلی یا یک کانتینر محلی است\&. .sp برای جزئیات درباره نحوه ترکیب این سوئیچ با \fB\-\-pipe\fR به ادامه متن مراجعه کنید\&. .sp افزوده‌شده در نسخه 219\&. .RE .PP \fB\-\-pty\-late\fR, \fB\-T\fR .RS 4 بسیار شبیه به \fB\-\-pty\fR، اما ارتباط PTY تنها پس از تکمیل راه‌اندازی واحد آغاز می‌شود\&. این عملاً بدان معناست که ورودی PTY در طول \fIExecStartPre=\fR یک سرویس، هنگام استفاده از \fB\-\-pty\-late\fR در دسترس نیست، در حالی که برای اکثر انواع سرویس با استفاده از \fB\-\-pty\fR در دسترس است\&. با این حال، اگر از این گزینه استفاده شود، دسترسی به TTY فراخواننده برای پرسش‌های گذرواژه ( \fB\-\-no\-ask\-password\fR در زیر را ببینید) در حین راه‌اندازی واحد در دسترس است\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-pipe\fR, \fB\-P\fR .RS 4 در صورت مشخص شدن، ورودی، خروجی و خطای استاندارد سرویس موقت از خود دستور \fBsystemd\-run\fR به ارث برده می‌شود\&. این به \fBsystemd\-run\fR امکان می‌دهد در خطوط لوله (pipelines) پوسته استفاده شود\&. .sp توجه داشته باشید که این حالت برای پوسته‌های تعاملی خط فرمان و موارد مشابه مناسب نیست، زیرا فرآیند سرویس هنگام فراخوانی در یک ترمینال به کنترل‌کننده TTY تبدیل نخواهد شد\&. در آن صورت به جای آن از \fB\-\-pty\fR استفاده کنید\&. .sp هنگامی که هر دو گزینه \fB\-\-pipe\fR و \fB\-\-pty\fR به صورت ترکیبی استفاده شوند، گزینه مناسب‌تر به طور خودکار تعیین و استفاده می‌شود\&. به طور خاص، هنگامی که با ورودی، خروجی و خطای استاندارد متصل به یک TTY فراخوانی شود، \fB\-\-pty\fR استفاده می‌شود و در غیر این صورت \fB\-\-pipe\fR\&. .sp این گزینه منجر به این می‌شود که \fBsystemd\-run\fR به صورت همگام منتظر خاتمه یافتن سرویس موقت بماند، مشابه با مشخص کردن \fB\-\-wait\fR\&. .sp هنگام استفاده از این گزینه، توصیف‌کننده‌های فایل اصلی که \fBsystemd\-run\fR دریافت می‌کند همان‌طور که هستند به فرآیندهای سرویس منتقل می‌شوند\&. اگر سرویس با اختیاراتی متفاوت از \fBsystemd\-run\fR اجرا شود، این بدان معناست که سرویس ممکن است به دلیل محدودیت‌های عادی دسترسی به توصیف‌کننده فایل، قادر به بازگشایی مجدد توصیف‌کننده‌های فایل منتقل‌شده نباشد\&. اگر فرآیند فراخوانی‌شده یک اسکریپت پوسته باشد که از ساختار \fBecho "hello" >/dev/stderr\fR برای نوشتن پیام‌ها در stderr استفاده می‌کند، این ممکن است مشکلاتی ایجاد کند، زیرا این ساختار تنها در صورتی کار می‌کند که stderr بتواند مجدداً باز شود\&. برای کاهش این مشکل، به جای آن از ساختار \fBecho "hello" >&2\fR استفاده کنید که عمدتاً معادل است و از این مشکل جلوگیری می‌کند\&. .sp افزوده‌شده در نسخه 235\&. .RE .PP \fB\-\-shell\fR, \fB\-S\fR .RS 4 میانبری برای "\-\-pty \-\-same\-dir \-\-wait \-\-collect \-\-service\-type=exec $SHELL"، یعنی درخواست یک پوسته تعاملی در دایرکتوری کاری فعلی، در حال اجرا در زمینه سرویس، با یک سوئیچ واحد\&. .sp افزوده‌شده در نسخه 240\&. .RE .PP \fB\-\-quiet\fR, \fB\-q\fR .RS 4 خروجی‌های اطلاعاتی اضافی را در حین اجرا سرکوب می‌کند\&. این به ویژه در ترکیب با \fB\-\-pty\fR مفید است که پیام اولیه توضیح‌دهنده نحوه پایان دادن به اتصال TTY را سرکوب خواهد کرد\&. .sp افزوده‌شده در نسخه 219\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 نمایش خروجی لاگ واحد در حین اجرا\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-output=\fR .RS 4 قالب‌بندی خروجی پرگوی لاگ واحد را کنترل می‌کند؛ برای مقادیر ممکن \fBjournalctl\fR(1) را ببینید\&. .sp افزوده‌شده در نسخه 261\&. .RE .PP \fB\-\-on\-active=\fR, \fB\-\-on\-boot=\fR, \fB\-\-on\-startup=\fR, \fB\-\-on\-unit\-active=\fR, \fB\-\-on\-unit\-inactive=\fR .RS 4 یک تایمر یکنواخت (monotonic timer) را نسبت به نقاط شروع مختلف برای راه‌اندازی دستور مشخص‌شده تعریف می‌کند\&. برای جزئیات \fIOnActiveSec=\fR، \fIOnBootSec=\fR، \fIOnStartupSec=\fR، \fIOnUnitActiveSec=\fR و \fIOnUnitInactiveSec=\fR در \fBsystemd.timer\fR(5) را ببینید\&. این گزینه‌ها میانبرهایی برای \fB\-\-timer\-property=\fR با ویژگی‌های مربوطه هستند\&. این گزینه‌ها ممکن است با \fB\-\-scope\fR یا \fB\-\-pty\fR ترکیب نشوند\&. .sp افزوده‌شده در نسخه 218\&. .RE .PP \fB\-\-on\-calendar=\fR .RS 4 یک تایمر تقویمی را برای راه‌اندازی دستور مشخص‌شده تعریف می‌کند\&. \fIOnCalendar=\fR در \fBsystemd.timer\fR(5) را ببینید\&. این گزینه میانبری برای \fB\-\-timer\-property=OnCalendar=\fR است\&. این گزینه ممکن است با \fB\-\-scope\fR یا \fB\-\-pty\fR ترکیب نشود\&. .sp افزوده‌شده در نسخه 218\&. .RE .PP \fB\-\-on\-clock\-change\fR, \fB\-\-on\-timezone\-change\fR .RS 4 یک محرک (trigger) را بر اساس جهش‌های ساعت سیستم یا تغییرات منطقه زمانی برای راه‌اندازی دستور مشخص‌شده تعریف می‌کند\&. \fIOnClockChange=\fR و \fIOnTimezoneChange=\fR در \fBsystemd.timer\fR(5) را ببینید\&. این گزینه‌ها میانبرهایی برای \fB\-\-timer\-property=OnClockChange=yes\fR و \fB\-\-timer\-property=OnTimezoneChange=yes\fR هستند\&. این گزینه‌ها ممکن است با \fB\-\-scope\fR یا \fB\-\-pty\fR ترکیب نشوند\&. .sp افزوده‌شده در نسخه 242\&. .RE .PP \fB\-\-path\-property=\fR, \fB\-\-socket\-property=\fR, \fB\-\-timer\-property=\fR .RS 4 یک ویژگی را بر روی واحد path، socket یا timer ایجادشده تنظیم می‌کند\&. این گزینه مشابه \fB\-\-property=\fR است، اما به جای واحد سرویس موقت ایجادشده، بر روی واحد موقت path، socket یا timer اعمال می‌شود\&. این گزینه یک انتساب را با همان قالبی که دستور \fBset\-property\fR از \fBsystemctl\fR(1) می‌پذیرد، دریافت می‌کند\&. این گزینه‌ها ممکن است با \fB\-\-scope\fR یا \fB\-\-pty\fR ترکیب نشوند\&. .sp افزوده‌شده در نسخه 218\&. .RE .PP \fB\-\-no\-block\fR .RS 4 به صورت همگام منتظر اتمام عملیات راه‌اندازی واحد نمی‌ماند\&. اگر این گزینه مشخص نشود، درخواست راه‌اندازی برای واحد موقت بررسی و در صف قرار داده می‌شود و \fBsystemd\-run\fR تا زمان تکمیل راه‌اندازی واحد منتظر خواهد ماند\&. با ارسال این آرگومان، درخواست تنها بررسی و در صف قرار داده می‌شود\&. این گزینه ممکن است با \fB\-\-wait\fR یا \fB\-\-scope\fR ترکیب نشود\&. .sp افزوده‌شده در نسخه 220\&. .RE .PP \fB\-\-wait\fR .RS 4 به صورت همگام منتظر خاتمه یافتن سرویس موقت می‌ماند\&. اگر این گزینه مشخص شود، درخواست راه‌اندازی برای واحد موقت بررسی، در صف قرار داده شده، و منتظر آن می‌ماند\&. متعاقباً واحد فراخوانی‌شده نظارت می‌شود و تا زمانی که مجدداً غیرفعال شود (به احتمال زیاد به این دلیل که دستور مشخص‌شده تکمیل شده است) انتظار کشیده می‌شود\&. هنگام خروج، اطلاعات مختصری درباره زمان اجرای واحد نمایش داده می‌شود، شامل کل زمان اجرا (و همچنین داده‌های حسابداری CPU، حافظه، IO و IP در صورتی که تنظیمات مربوط به حسابداری cgroup فعال باشند) و کد خروج و وضعیت فرآیند اصلی\&. این خروجی می‌تواند با \fB\-\-quiet\fR سرکوب شود\&. این گزینه ممکن است با \fB\-\-no\-block\fR، \fB\-\-remain\-after\-exit\fR، \fB\-\-scope\fR یا گزینه‌های مختلف path، socket یا timer ترکیب نشود\&. .sp افزوده‌شده در نسخه 232\&. .RE .PP \fB\-G\fR, \fB\-\-collect\fR .RS 4 تخلیه واحد موقت از حافظه پس از تکمیل آن، حتی اگر با شکست مواجه شده باشد\&. به طور معمول، بدون این گزینه، تمام واحدهایی که اجرا شده و با شکست مواجه شده‌اند در حافظه نگه‌داری می‌شوند تا زمانی که کاربر صریحاً وضعیت شکست آن‌ها را با \fBsystemctl reset\-failed\fR یا یک دستور معادل بازنشانی کند\&. از سوی دیگر، واحدهایی که با موفقیت اجرا شده‌اند بلافاصله از حافظه تخلیه می‌شوند\&. اگر این گزینه فعال شود، «جمع‌آوری زباله» (garbage collection) واحدها تهاجمی‌تر انجام می‌شود و واحدها فارغ از اینکه با موفقیت خارج شده باشند یا با شکست مواجه شده باشند، از حافظه تخلیه می‌گردند\&. این گزینه میانبری برای \fB\-\-property=CollectMode=inactive\-or\-failed\fR است، برای اطلاعات بیشتر به توضیحات \fICollectMode=\fR در \fBsystemd.unit\fR(5) مراجعه کنید\&. .sp افزوده‌شده در نسخه 236\&. .RE .PP \fB\-\-job\-mode=\fR\fB\fIMODE\fR\fR .RS 4 هنگام قرار دادن یک کار جدید در صف، این گزینه نحوه برخورد با کارهای از پیش در صف قرار گرفته را کنترل می‌کند\&. .sp این گزینه همان مقادیر حالتی را می‌پذیرد که گزینه \fB\-\-job\-mode=\fR از \fBsystemctl\fR(1) دریافت می‌کند\&. حالت پیش‌فرض کار "fail" است\&. .sp اجرای \fB\-\-job\-mode=help\fR فهرستی از حالت‌های کار موجود را نمایش می‌دهد\&. .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-ignore\-failure\fR .RS 4 به طور پیش‌فرض، اگر دستور مشخص‌شده با شکست مواجه شود، واحد فراخوانی‌شده به عنوان شکست‌خورده علامت‌گذاری می‌شود (هرچند ممکن است همچنان از حافظه تخلیه شود، \fB\-\-collect=\fR در بالا را ببینید) و این موضوع در لاگ‌ها گزارش می‌شود\&. اگر این سوئیچ مشخص شود، این گزارش‌دهی سرکوب می‌شود و هر وضعیت/کد خروج غیرموفقیت‌آمیز دستور به عنوان موفقیت در نظر گرفته خواهد شد\&. این گزینه در حالت \fB\-\-scope\fR پشتیبانی نمی‌شود\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-background=\fR\fB\fICOLOR\fR\fR .RS 4 رنگ پس‌زمینه ترمینال را تا زمانی که نشست ادامه دارد به رنگ ANSI مشخص‌شده تغییر می‌دهد\&. رنگ مشخص‌شده باید یک رنگ پس‌زمینه ANSI X3\&.64 SGR باشد، یعنی رشته‌هایی مانند "40"، "41"، \&...، "47"، "48;2;\&..."، "48;5;\&..."\&. برای جزئیات \m[blue]\fBANSI Escape Code (Wikipedia)\fR\m[]\&\s-2\u[1]\d\s+2 را ببینید\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-user\fR .RS 4 با مدیر سرویس کاربر فراخواننده ارتباط برقرار می‌کند، به جای مدیر سرویس سیستم\&. .RE .PP \fB\-\-system\fR .RS 4 با مدیر سرویس سیستم ارتباط برقرار می‌کند\&. این مقدار پیش‌فرض ضمنی است\&. .RE .PP \fB\-H\fR, \fB\-\-host=\fR .RS 4 عملیات را از راه دور اجرا می‌کند\&. یک نام میزبان، یا یک نام کاربری و نام میزبان جداشده با "@" را برای اتصال مشخص کنید\&. نام میزبان ممکن است به صورت اختیاری با یک پورت که ssh روی آن گوش می‌دهد (جداشده با ":") و سپس یک نام کانتینر (جداشده با "/") پسوندگذاری شود، که مستقیماً به یک کانتینر خاص روی میزبان مشخص‌شده متصل می‌شود\&. این گزینه از SSH برای ارتباط با نمونه مدیر ماشین راه دور استفاده می‌کند\&. نام کانتینرها ممکن است با \fBmachinectl \-H \fR\fB\fIHOST\fR\fR شمارش شوند\&. آدرس‌های IPv6 را در قلاب‌ها (brackets) قرار دهید\&. .RE .PP \fB\-M\fR, \fB\-\-machine=\fR .RS 4 عملیات را روی یک کانتینر محلی اجرا می‌کند\&. نام کانتینر را برای اتصال مشخص کنید، که می‌تواند به صورت اختیاری با یک نام کاربری برای اتصال و نویسه جداکننده "@" پیشوندگذاری شود\&. اگر رشته ویژه "\&.host" به جای نام کانتینر استفاده شود، اتصالی به سیستم محلی برقرار می‌شود (که برای اتصال به گذرگاه کاربری یک کاربر خاص مفید است: "\-\-user \-\-machine=lennart@\&.host")\&. اگر نحو "@" استفاده نشود، اتصال به عنوان کاربر root برقرار می‌شود\&. اگر نحو "@" استفاده شود، سمت چپ یا سمت راست ممکن است حذف شود (اما نه هر دو) که در این صورت نام کاربر محلی و "\&.host" ضمنی هستند\&. .RE .PP \fB\-C\fR, \fB\-\-capsule=\fR .RS 4 عملیات را روی یک کپسول (capsule) اجرا می‌کند\&. یک نام کپسول را برای اتصال مشخص کنید\&. برای جزئیات درباره کپسول‌ها به \fBcapsule@.service\fR(5) مراجعه کنید\&. .sp افزوده‌شده در نسخه 256\&. .RE .PP \fB\-\-no\-ask\-password\fR .RS 4 از کاربر برای احراز هویت در عملیات‌های دارای اختیارات بالا درخواست گذرواژه نمی‌کند\&. .RE .PP \fB\-h\fR, \fB\-\-help\fR .RS 4 یک متن راهنمای کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-version\fR .RS 4 یک رشته نسخه کوتاه را چاپ کرده و خارج می‌شود\&. .RE .PP \fB\-\-json=\fR\fB\fIMODE\fR\fR .RS 4 خروجی را در قالب JSON نمایش می‌دهد\&. یکی از مقادیر "short" (برای کوتاه‌ترین خروجی ممکن بدون هیچ‌گونه فاصله خالی یا شکست خط اضافی)، "pretty" (برای نسخه‌ای زیبا از همان، همراه با تورفتگی و شکست خط) یا "off" (برای خاموش کردن خروجی JSON، پیش‌فرض) را می‌پذیرد\&. .RE .PP \fB\-\-no\-pager\fR .RS 4 خروجی را به یک صفحه‌بند (pager) منتقل نمی‌کند\&. این در حال حاضر تنها برای \fB\-\-help\fR اعمال می‌شود\&. (صفحه‌بند در طول عملکرد عادی راه‌اندازی نمی‌شود\&.) .sp افزوده‌شده در نسخه 258\&. .RE .PP \fB\-\-json=\fR نباید با \fB\-\-scope\fR، \fB\-\-pty\fR، \fB\-\-pty\-late\fR، \fB\-\-pipe\fR، \fB\-\-verbose\fR، یا گزینه‌های path، socket یا timer ترکیب شود\&. .PP تمام آرگومان‌های خط فرمان پس از نخستین آرگومان غیرگزینه‌ای، بخشی از خط فرمان فرآیند راه‌اندازی‌شده می‌شوند\&. .SH "کدهای خروج (EXIT STATUS)" .PP در صورت موفقیت، 0 بازگردانده می‌شود\&. اگر \fBsystemd\-run\fR در راه‌اندازی سرویس ناموفق باشد، یک مقدار بازگشتی غیرصفر برگردانده خواهد شد\&. اگر \fBsystemd\-run\fR منتظر خاتمه سرویس بماند، مقدار بازگشتی از سرویس منتقل خواهد شد\&. در صورت موفقیت 0 بازگردانده می‌شود، از جمله در تمامی مواردی که سیستم‌دی خروج سرویس را تمیز در نظر می‌گیرد؛ بررسی \fISuccessExitStatus=\fR در \fBsystemd.service\fR(5) را ببینید\&. .SH "مثال‌ها (EXAMPLES)" .PP \fBمثال\ \&۱.\ \&لاگ کردن متغیرهای محیطی ارائه‌شده توسط systemd به سرویس‌ها\fR .sp .if n \{\ .RS 4 .\} .nf # systemd\-run env Running as unit: run\-19945\&.service # journalctl \-u run\-19945\&.service Sep 08 07:37:21 bupkis systemd[1]: Starting /usr/bin/env\&.\&.\&. Sep 08 07:37:21 bupkis systemd[1]: Started /usr/bin/env\&. Sep 08 07:37:21 bupkis env[19948]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin Sep 08 07:37:21 bupkis env[19948]: LANG=en_US\&.UTF\-8 Sep 08 07:37:21 bupkis env[19948]: BOOT_IMAGE=/vmlinuz\-3\&.11\&.0\-0\&.rc5\&.git6\&.2\&.fc20\&.x86_64 .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۲.\ \&محدود کردن منابع در دسترس یک دستور\fR .sp .if n \{\ .RS 4 .\} .nf # systemd\-run \-p IOWeight=10 updatedb .fi .if n \{\ .RE .\} .PP این دستور ابزار \fBupdatedb\fR(8) را فراخوانی می‌کند، اما وزن I/O بلوکی را برای آن به 10 کاهش می‌دهد\&. برای اطلاعات بیشتر درباره ویژگی \fIIOWeight=\fR به \fBsystemd.resource-control\fR(5) مراجعه کنید\&. .PP \fBمثال\ \&۳.\ \&اجرای دستورات در زمانی مشخص\fR .PP دستور زیر یک فایل را پس از ۳۰ ثانیه لمس (touch) می‌کند\&. .sp .if n \{\ .RS 4 .\} .nf # date; systemd\-run \-\-on\-active=30 \-\-timer\-property=AccuracySec=100ms /bin/touch /tmp/foo Mon Dec 8 20:44:24 KST 2014 Running as unit: run\-71\&.timer Will run service as unit: run\-71\&.service # journalctl \-b \-u run\-71\&.timer \-\- Journal begins at Fri 2014\-12\-05 19:09:21 KST, ends at Mon 2014\-12\-08 20:44:54 KST\&. \-\- Dec 08 20:44:38 container systemd[1]: Starting /bin/touch /tmp/foo\&. Dec 08 20:44:38 container systemd[1]: Started /bin/touch /tmp/foo\&. # journalctl \-b \-u run\-71\&.service \-\- Journal begins at Fri 2014\-12\-05 19:09:21 KST, ends at Mon 2014\-12\-08 20:44:54 KST\&. \-\- Dec 08 20:44:48 container systemd[1]: Starting /bin/touch /tmp/foo\&.\&.\&. Dec 08 20:44:48 container systemd[1]: Started /bin/touch /tmp/foo\&. .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۴.\ \&اجازه دسترسی به tty\fR .PP دستور زیر \fBbash\fR(1) را به عنوان یک سرویس فراخوانی می‌کند و ورودی، خروجی و خطای استاندارد آن را به TTY فراخواننده منتقل می‌نماید\&. .sp .if n \{\ .RS 4 .\} .nf # systemd\-run \-t \-\-send\-sighup bash .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۵.\ \&راه‌اندازی screen به عنوان یک سرویس کاربری\fR .sp .if n \{\ .RS 4 .\} .nf $ systemd\-run \-\-scope \-\-user screen Running scope as unit run\-r14b0047ab6df45bfb45e7786cc839e76\&.scope\&. $ screen \-ls There is a screen on: 492\&.\&.laptop (Detached) 1 Socket in /var/run/screen/S\-fatima\&. .fi .if n \{\ .RE .\} .PP این دستور فرآیند \fBscreen\fR را به عنوان فرزندی از فرآیند \fBsystemd \-\-user\fR که توسط user@\&.service راه‌اندازی شده است، در یک واحد scope شروع می‌کند\&. یک واحد \fBsystemd.scope\fR(5) به جای واحد \fBsystemd.service\fR(5) استفاده می‌شود، زیرا \fBscreen\fR هنگام جدا شدن از ترمینال خارج می‌شود و یک واحد سرویس در این صورت خاتمه می‌یافت\&. اجرای \fBscreen\fR به عنوان یک واحد کاربری این مزیت را دارد که بخشی از اسکوپ نشست (session scope) نیست\&. اگر \fIKillUserProcesses=yes\fR در \fBlogind.conf\fR(5) پیکربندی شده باشد (پیش‌فرض "no" است)، با خروج کاربر از آن نشست، اسکوپ نشست خاتمه خواهد یافت\&. .PP واحد user@\&.service هنگامی که کاربر برای نخستین بار وارد سیستم می‌شود به طور خودکار راه‌اندازی می‌شود، و تا زمانی که دست‌کم یک نشست ورود باز باشد فعال می‌ماند\&. پس از خروج کاربر از آخرین نشست، user@\&.service و تمامی سرویس‌های زیرمجموعه آن خاتمه می‌یابند\&. این رفتار در صورتی که «ماندگاری» (lingering) برای آن کاربر فعال نشده باشد پیش‌فرض است\&. فعال کردن ماندگاری به این معنی است که user@\&.service در حین بوت به طور خودکار راه‌اندازی می‌شود، حتی اگر کاربر وارد سیستم نشده باشد، و با خروج کاربر از سیستم، سرویس خاتمه نمی‌یابد\&. .PP فعال کردن ماندگاری به کاربر اجازه می‌دهد فرآیندها را بدون وارد شدن به سیستم اجرا کند، برای مثال به منظور اجازه دادن به \fBscreen\fR برای تداوم پس از خروج کاربر از سیستم، حتی اگر اسکوپ نشست خاتمه یابد\&. در پیکربندی پیش‌فرض، کاربران می‌توانند ماندگاری را برای خود فعال کنند: .sp .if n \{\ .RS 4 .\} .nf $ loginctl enable\-linger .fi .if n \{\ .RE .\} .PP \fBمثال\ \&۶.\ \&گسترش متغیرها توسط مدیر\fR .sp .if n \{\ .RS 4 .\} .nf $ systemd\-run \-t echo "<${INVOCATION_ID}>" \*(Aq<${INVOCATION_ID}>\*(Aq <> <5d0149bfa2c34b79bccb13074001eb20> .fi .if n \{\ .RE .\} .PP آرگومان نخست توسط پوسته گسترش می‌یابد (نقل‌قول‌های دوتایی)، اما آرگومان دوم توسط پوسته گسترش نمی‌یابد (نقل‌قول‌های تکی)\&. \fBecho\fR(1) با آرایه آرگومان ["/usr/bin/echo", "<>", "<${INVOCATION_ID}>"] فراخوانی می‌شود، و سپس \fBsystemd\fR(1) متغیر \fI${INVOCATION_ID}\fR را تولید کرده و آن را در خط فرمان جایگزین می‌کند\&. این جایگزینی نمی‌توانست در سمت کلاینت انجام شود، زیرا شناسه هدفی که برای سرویس تنظیم خواهد شد پیش از برقراری تماس مشخص نیست\&. .PP \fBمثال\ \&۷.\ \&گسترش متغیرها و تغییر مسیر خروجی با استفاده از یک پوسته\fR .PP گسترش متغیرها توسط \fBsystemd\fR(1) می‌تواند با \fI\-\-expand\-environment=no\fR غیرفعال شود\&. .PP غیرفعال کردن گسترش متغیرها می‌تواند زمانی مفید باشد که دستور مورد نظر برای اجرا حاوی نویسه‌های دلار است و گریز (escape) دادن آن‌ها نامناسب یا دشوار باشد\&. به عنوان مثال، هنگامی که از یک پوسته استفاده می‌شود: .sp .if n \{\ .RS 4 .\} .nf $ systemd\-run \-\-expand\-environment=no \-t bash \e \-c \*(Aqecho $SHELL $$ >/dev/stdout\*(Aq /bin/bash 12345 .fi .if n \{\ .RE .\} .PP آرگومان آخر عیناً به پوسته \fBbash\fR(1) که توسط واحد سرویس راه‌اندازی شده است منتقل می‌شود\&. پوسته "$SHELL" را به مسیر پوسته، و "$$" را به شماره فرآیند خود گسترش می‌دهد، و سپس آن رشته‌ها به دستور توکار \fBecho\fR منتقل شده و در خروجی استاندارد چاپ می‌شوند (که در این مورد، به ترمینال فراخواننده متصل است)\&. .PP \fBمثال\ \&۸.\ \&مقدار بازگشتی\fR .sp .if n \{\ .RS 4 .\} .nf $ systemd\-run \-\-user \-\-wait true $ systemd\-run \-\-user \-\-wait \-p SuccessExitStatus=11 bash \-c \*(Aqexit 11\*(Aq $ systemd\-run \-\-user \-\-wait \-p SuccessExitStatus=SIGUSR1 \-\-expand\-environment=no \e bash \-c \*(Aqkill \-SIGUSR1 $$\*(Aq .fi .if n \{\ .RE .\} .PP هر سه فراخوانی بالا با موفقیت انجام خواهند شد، یعنی با کد خروج 0 خاتمه می‌یابند\&. .SH "همچنین ببینید (SEE ALSO)" .PP \fBsystemd\fR(1), \fBsystemctl\fR(1), \fBsystemd.unit\fR(5), \fBsystemd.service\fR(5), \fBsystemd.scope\fR(5), \fBsystemd.slice\fR(5), \fBsystemd.exec\fR(5), \fBsystemd.resource-control\fR(5), \fBsystemd.timer\fR(5), \fBsystemd-mount\fR(1), \fBmachinectl\fR(1), \fBrun0\fR(1) .SH "نکات (NOTES)" .IP " 1." 4 کدهای فرار ANSI (ویکی‌پدیا) .RS 4 \%https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_Graphic_Rendition)_parameters .RE