'\" t
.\" Title: dbus-launch
.\" Author: [see the "AUTHOR" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 03/02/2025
.\" Manual: User Commands
.\" Source: D-Bus 1.16.2
.\" Language: Persian
.\"
.TH "DBUS\-LAUNCH" "1" "03/02/2025" "D\-Bus 1.16.2" "دستورهای کاربر"
.\" -----------------------------------------------------------------
.\" * 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)"
dbus-launch \- ابزار راهاندازی یک گذرگاه پیام از اسکریپت شل
.SH "خلاصه دستور (SYNOPSIS)"
.HP \w'\fBdbus\-launch\fR\ 'u
\fBdbus\-launch\fR [\-\-version] [\-\-help] [\-\-sh\-syntax] [\-\-csh\-syntax] [\-\-auto\-syntax] [\-\-binary\-syntax] [\-\-close\-stderr] [\-\-exit\-with\-session] [\-\-exit\-with\-x11] [\-\-autolaunch=\fIMACHINEID\fR] [\-\-config\-file=\fIFILENAME\fR] [\fIPROGRAM\fR] [\fIARGS\fR...]
.br
.SH "توضیحات (DESCRIPTION)"
.PP
دستور
\fBdbus\-launch\fR
برای راهاندازی یک نمونه از گذرگاه نشست
\fIdbus\-daemon\fR
از طریق یک اسکریپت شل استفاده میشود. این دستور معمولاً از اسکریپتهای ورود کاربر فراخوانی میگردد. بر خلاف خود دیمن،
\fBdbus\-launch\fR
پس از اجرا خارج میشود، بنابراین میتوان از علامتهای نقلقول وارونه (backticks) یا ساختار $() برای خواندن اطلاعات خروجی از
\fBdbus\-launch\fR
استفاده کرد.
.PP
بدون هیچ آرگومانی،
\fBdbus\-launch\fR
یک نمونه از گذرگاه نشست را راهاندازی کرده و نشانی و شناسه فرایند (PID) آن نمونه را در خروجی استاندارد چاپ میکند.
.PP
میتوانید برنامهای را برای اجرا مشخص کنید؛ در این حالت،
\fBdbus\-launch\fR
یک نمونه گذرگاه نشست را راهاندازی میکند، متغیرهای محیطی مناسب را به گونهای تنظیم میکند که برنامه مشخصشده بتواند گذرگاه را پیدا کند، و سپس برنامه مشخصشده را با آرگومانهای تعیینشده اجرا مینماید. برای نمونهها به بخش زیر مراجعه کنید.
.PP
اگر برنامهای را اجرا کنید،
\fBdbus\-launch\fR
اطلاعات مربوط به گذرگاه جدید را در خروجی استاندارد چاپ نخواهد کرد.
.PP
هنگامی که
\fBdbus\-launch\fR
اطلاعات گذرگاه را در خروجی استاندارد چاپ میکند، به طور پیشفرض در قالب جفتهای کلید\-مقدار ساده است. با این حال، میتوانید با استفاده از گزینههای \-\-sh\-syntax، \-\-csh\-syntax، \-\-binary\-syntax یا \-\-auto\-syntax شیوههای نگارش متناوبی را درخواست کنید. تعدادی از این گزینهها باعث میشوند
\fBdbus\-launch\fR
کدهای شل را برای برپایی متغیرهای محیطی تولید کند.
.PP
با گزینه \-\-auto\-syntax، دستور
\fBdbus\-launch\fR
به مقدار متغیر محیطی SHELL نگاه میکند تا مشخص کند کدام نحو شل باید استفاده شود. اگر SHELL به "csh" ختم شود، کد سازگار با csh تولید میشود؛ در غیر این صورت، کد سازگار با شل بورن (Bourne shell) منتشر میگردد. به جای ارسال \-\-auto\-syntax، میتوانید با استفاده از \-\-sh\-syntax برای نحو Bourne، یا \-\-csh\-syntax برای نحو csh، به صراحت یک نحو خاص را تعیین کنید. در اسکریپتها، پایدارتر است که از \-\-auto\-syntax اجتناب کنید، چرا که قاعدتاً مشخص است اسکریپت شما با چه شلی نوشته شده است.
.PP
برای اطلاعات بیشتر درباره D\-Bus به نشانی
مراجعه کنید. همچنین صفحه راهنمای
\fIdbus\-daemon\fR
را ببینید.
.SH "مثالها (EXAMPLES)"
.PP
توزیعهایی که
\fBdbus\-launch\fR
را به عنوان بخشی از یک نشست استاندارد X اجرا میکنند، باید پس از راهاندازی کارساز X و در دسترس قرار گرفتن آن، دستور
\fBdbus\-launch \-\-exit\-with\-session\fR
را به عنوان یک پوشش (wrapper) پیرامون کلاینت اصلی X (معمولاً یک مدیر نشست یا مدیر پنجره) اجرا کنند، مانند این مثالها:
.PP
\fBdbus\-launch \-\-exit\-with\-session gnome\-session\fR
.PP
\fBdbus\-launch \-\-exit\-with\-session openbox\fR
.PP
\fBdbus\-launch \-\-exit\-with\-session ~/\&.xsession\fR
.PP
اگر توزیع شما این کار را انجام نمیدهد، میتوانید با اجرای مدیر نشست یا مدیر پنجره خود به همان روش در اسکریپتی که توسط نشست X شما اجرا میشود، مانند
~/\&.xsession،
~/\&.xinitrc
یا
~/\&.Xclients،
به نتایج مشابهی دست یابید.
.PP
برای راهاندازی یک نشست D\-Bus درون یک نشست حالت متنی، از
\fBdbus\-launch\fR
استفاده نکنید. به جای آن،
\fBdbus-run-session\fR(1)
را ببینید.
.sp
.if n \{\
.RS 4
.\}
.nf
## بررسی وجود دیمن گذرگاه برای اطمینان
if test \-z "$DBUS_SESSION_BUS_ADDRESS" ; then
## در صورت پیدا نشدن، یک نمونه جدید راهاندازی شود
eval `dbus\-launch \-\-sh\-syntax`
echo "D\-Bus per\-session daemon address is: $DBUS_SESSION_BUS_ADDRESS"
fi
.fi
.if n \{\
.RE
.\}
.PP
توجه داشته باشید که در این حالت، dbus\-launch خارج میشود و dbus\-daemon به هنگام خروج از سیستم (logout) به طور خودکار متوقف نخواهد شد.
.SH "راهاندازی خودکار (AUTOMATIC LAUNCHING)"
.PP
اگر متغیر DBUS_SESSION_BUS_ADDRESS برای فرایندی که تلاش میکند از D\-Bus استفاده کند تنظیم نشده باشد، فرایند به طور پیشفرض تلاش خواهد کرد dbus\-launch را با گزینه \-\-autolaunch فراخوانی کند تا یک گذرگاه نشست جدید راهاندازی کند یا نشانی گذرگاه موجود را روی نمایشگر X یا در فایلی در ~/\&.dbus/session\-bus/ پیدا نماید.
.PP
هر زمان که راهاندازی خودکار رخ دهد، برنامهای که ناچار به راهاندازی یک گذرگاه جدید شده است در دنیای کوچک و مجزای خود قرار میگیرد؛ در صورتی که این برنامه بخواهد از خدمات متعددی در گذرگاه استفاده کند، این وضعیت میتواند عملاً به راهاندازی یک نشست کاملاً جدید منجر شود. بسته به برنامه و کاری که قصد انجام آن را دارد، این حالت میتواند نامطلوب یا حتی کاملاً معیوب باشد.
.PP
دو دلیل متداول برای راهاندازی خودکار وجود دارد. یکی اتصال ssh به یک ماشین راه دور است. راهکار ایدهآل برای این حالت، بازفرستی DBUS_SESSION_BUS_ADDRESS به همان روشی است که DISPLAY هدایت میشود. در این فاصله، اگر مایل باشید میتوانید فایل پیکربندی session\&.conf را ویرایش کنید تا گذرگاه نشست شما روی TCP گوش دهد، و متغیر DBUS_SESSION_BUS_ADDRESS را به صورت دستی تنظیم نمایید.
.PP
دومین دلیل رایج برای راهاندازی خودکار، دستور su به کاربری دیگر و نمایش برنامههای X در حال اجرا با هویت کاربر دوم روی نمایشگر متعلق به کاربر اول است. شاید راهحل ایدهآل در این حالت اجازه دادن به کاربر دوم برای اتصال به گذرگاه نشست کاربر اول باشد، همانطور که میتوانند به نمایشگر کاربر اول متصل شوند. با این وجود، سازوکاری برای این کار توسعه داده نشده است.
.PP
شما همیشه میتوانید با تنظیم دستی DBUS_SESSION_BUS_ADDRESS از راهاندازی خودکار جلوگیری کنید. راهاندازی خودکار به این دلیل اتفاق میافتد که نشانی پیشفرض در صورت تنظیم نشدن هیچ مقداری، "autolaunch:" است؛ بنابراین اگر هر نشانی دیگری تنظیم شده باشد، هیچ راهاندازی خودکاری رخ نخواهد داد. با این حال میتوانید راهاندازی خودکار را در یک نشانی گذرگاه نشست صریح به عنوان گزینه یدکی (fallback) بگنجانید، برای نمونه DBUS_SESSION_BUS_ADDRESS="something:,autolaunch:" \- در این حالت اگر نشانی اول کار نکند، فرایندها به طور خودکار راهاندازی میشوند. (متغیر نشانی گذرگاه حاوی فهرستی از نشانیها برای آزمایش است که با کاما از هم جدا شدهاند.)
.PP
گزینه \-\-autolaunch یک جزئیات پیادهسازی داخلی از libdbus در نظر گرفته میشود و در واقع برنامههایی برای تغییر آن وجود دارد. در هر صورت دلیل موجهی برای استفاده از آن در خارج از پیادهسازی libdbus وجود ندارد.
.SH "گزینهها (OPTIONS)"
.PP
گزینههای زیر پشتیبانی میشوند:
.PP
\fB\-\-auto\-syntax\fR
.RS 4
انتخاب \-\-csh\-syntax یا \-\-sh\-syntax بر پایه متغیر محیطی SHELL.
.RE
.PP
\fB\-\-binary\-syntax\fR
.RS 4
نوشتن نشانی گذرگاه به صورت خاتمهیافته با نویسه پوچ (nul\-terminated) در stdout، سپس شناسه فرایند (PID) گذرگاه به صورت یک عدد صحیح دودویی با اندازه sizeof(pid_t)، و سپس شناسه پنجره X گذرگاه به صورت یک عدد صحیح دودویی با اندازه sizeof(long). اعداد صحیح با ترتیب بایتی ماشین هستند، نه ترتیب بایتی شبکه یا هر ترتیب استاندارد دیگر.
.RE
.PP
\fB\-\-close\-stderr\fR
.RS 4
بستن جریان خروجی خطای استاندارد پیش از شروع دیمن D\-Bus. این گزینه زمانی مفید است که میخواهید پیامهای خطای dbus\-launch را دریافت کنید اما نمیخواهید dbus\-daemon جریان را برای برنامه شما باز نگه دارد.
.RE
.PP
\fB\-\-config\-file=FILENAME\fR
.RS 4
ارسال \-\-config\-file=FILENAME به دیمن گذرگاه، به جای ارسال آرگومان \-\-session به آن. به صفحه راهنمای dbus\-daemon مراجعه کنید.
.RE
.PP
\fB\-\-csh\-syntax\fR
.RS 4
تولید کد سازگار با csh برای برپایی متغیرهای محیطی.
.RE
.PP
\fB\-\-exit\-with\-x11\fR
.RS 4
اگر این گزینه مشخص شود، یک فرایند مراقب ("babysitter") ماندگار ایجاد خواهد شد که به کارساز X متصل میشود. اگر نتواند متصل شود، راهاندازی با شکست مواجه میشود. در صورتی که فرایند مراقب اتصال X خود را از دست بدهد، دیمن گذرگاه پیام را میکشد و تمام کلاینتهای آن را قطع میکند (که باید در پاسخ خارج شوند). این کار از باقی ماندن فرایندهای دیمن از نشست X کاربر پس از پایان یافتن نشست X جلوگیری میکند.
.RE
.PP
\fB\-\-exit\-with\-session\fR
.RS 4
اگر این گزینه مشخص شود، یک فرایند مراقب ("babysitter") ماندگار، مشابه با حالت \-\-exit\-with\-x11 ایجاد خواهد شد. اگر نتواند به کارساز X متصل شود، به جای آن ترمینالی را که dbus\-launch از آن آغاز شده نظارت میکند، و اگر سیگنال HUP روی stdin دریافت کند، دیمن گذرگاه پیام کشته خواهد شد. این گزینه توصیه نمیشود زیرا ورودی را از ترمینالی که در آن شروع شده مصرف میکند؛ این گزینه عمدتاً برای سازگاری با گذشته فراهم شده است.
.RE
.PP
\fB\-\-autolaunch=MACHINEID\fR
.RS 4
این گزینه مشخص میکند که
\fBdbus\-launch\fR
باید برای یافتن یک نشست قبلاً راهاندازیشده جستوجو کرده و مقادیر یافتشده در آنجا را مجدداً استفاده کند. اگر نشستی یافت نشود، نشست جدیدی را آغاز میکند. در صورت مشخص شدن \-\-autolaunch، گزینه \-\-exit\-with\-session به صورت ضمنی فعال میشود. این گزینه منحصراً برای استفاده libdbus است و نباید آن را به صورت دستی استفاده کنید. این رفتار ممکن است در آینده تغییر کند.
.RE
.PP
\fB\-\-sh\-syntax\fR
.RS 4
تولید کد سازگار با شل بورن (Bourne shell) برای برپایی متغیرهای محیطی.
.RE
.PP
\fB\-\-version\fR
.RS 4
چاپ نسخه dbus\-launch و خروج.
.RE
.PP
\fB\-\-help\fR
.RS 4
چاپ اطلاعات راهنمای dbus\-launch و خروج.
.RE
.SH "یادداشتها (NOTES)"
.PP
اگر دستور
\fBdbus\-launch myapp\fR
را (همراه با هر گزینه دیگری) اجرا کنید، با خاتمه یافتن
\fBmyapp\fR
دیمن dbus\-daemon خارج
\fIنخواهد شد\fR؛
زیرا اینگونه فرض میشود که
\fBmyapp\fR
بخشی از یک نشست بزرگتر است، نه اینکه خود به تنهایی یک نشست مستقل باشد.
.SH "نویسندگان (AUTHOR)"
.PP
مراجعه کنید به:
.PP
.SH "گزارش باگها (BUGS)"
.PP
لطفاً گزارشهای باگ را به فهرست پستی یا سامانه پیگیری باگ D\-Bus ارسال کنید؛ مراجعه کنید به:
.PP
.SH "همچنین ببینید (SEE ALSO)"
.PP
\fBdbus\-daemon\fR(1)،
\fBdbus\-run\-session\fR(1)،
\fBdbus\-send\fR(1)،
\fBdbus\-monitor\fR(1)