pulseaudio(1) General Commands Manual pulseaudio(1)

pulseaudio - سامانه صوتی PulseAudio

pulseaudio [options]

pulseaudio --help

pulseaudio --version

pulseaudio --dump-conf

pulseaudio --dump-modules

pulseaudio --dump-resample-methods

pulseaudio --cleanup-shm

pulseaudio --start

pulseaudio --kill

pulseaudio --check

‏PulseAudio یک کارگزار صوتی تحت شبکه با تأخیر پایین برای سامانه‌های لینوکس، POSIX و ویندوز است.

نمایش راهنما.
نمایش اطلاعات نسخه.
بارگذاری فایل پیکربندی دیمن daemon.conf (پایین را ببینید)، تجزیه گزینه‌های پیکربندی باقی‌مانده در خط فرمان و برون‌ریزی پیکربندی نهایی دیمن در قالبی که با daemon.conf سازگار باشد.
فهرست کردن ماژول‌های بارگذاری‌پذیر موجود. برای فهرست مفصل‌تر، با -v ترکیب کنید.
فهرست کردن روش‌های بازنمونه‌برداری صوتی (resamplers) موجود.
شناسایی بخش‌های حافظه اشتراکی POSIX کهنه و متروکه PulseAudio در /dev/shm و حذف آن‌ها در صورت امکان. این کار به‌طور ضمنی هنگام راه‌اندازی هر دیمن جدید یا تلاش کلاینت برای اتصال به دیمن انجام می‌شود. معمولاً نیازی به اجرای دستی این دستور نیست. این گزینه تنها در سامانه‌هایی در دسترس است که بخش‌های حافظه اشتراکی POSIX را از طریق یک سیستم‌فایل مجازی سوارشده روی /dev/shm پیاده‌سازی کرده باشند (مانند لینوکس).
راه‌اندازی PulseAudio در صورتی که هنوز در حال اجرا نیست. این عمل با راه‌اندازی PulseAudio بدون --start متفاوت است، چرا که در صورت در حال اجرا بودن PA با شکست مواجه می‌شد. بازگشت این فراخوانی تضمین می‌کند که PulseAudio کاملاً مقداردهی اولیه شده است. همراه با --daemonize در نظر گرفته می‌شود.
کشتن دیمن در حال اجرای PulseAudio متعلق به کاربر فراخواننده (معادل ارسال سیگنال SIGTERM).
بازگرداندن ۰ به عنوان کد بازگشتی هنگامی که دیمن PulseAudio از قبل برای کاربر فراخواننده در حال اجرا باشد، و مقداری غیرصفر در غیر این صورت. هیچ خروجی‌ای در کنسول تولید نمی‌کند، مگر خطاها در stderr.

توجه داشته باشید که یک مقدار بازگشتی غیرصفر لزوماً به معنای غیرقابل استفاده بودن PulseAudio نیست. حتی اگر کارگزار در حال اجرا نباشد، ممکن است به‌طور خودکار از طریق سازوکار autospawn مربوط به PulseAudio یا فعال‌سازی سوکت systemd آغاز به کار کند، یا محیط به شکلی باشد که بررسی فرایندها کار نکند (برای مثال، کارگزار در حال اجرا ممکن است درون یک کانتینر نمایش داده نشود، حتی اگر از طریق سوکت در دسترس باشد). همچنین غیرفعال کردن فایل‌های PID با --use-pid-file=no مانع از آن می‌شود که --check کارگزارهای در حال اجرا را شناسایی کند.

بررسی مطمئن‌تر در اکثر شرایط، تلاش برای برقراری یک اتصال کلاینت به کارگزار است. متأسفانه در حال حاضر گزینه --check-connection برای جایگزینی --check وجود ندارد، اما اجرای «pactl info» می‌تواند جایگزین بسیار مناسبی باشد.

اجرا به عنوان یک نمونه در سطح کل سیستم (system-wide) به جای هر کاربر به‌طور مجزا. لطفاً توجه داشته باشید که این کار برخی از قابلیت‌های PulseAudio را غیرفعال می‌کند و عموماً توصیه نمی‌شود، مگر اینکه سامانه کاربر محلی نداشته باشد (مانند یک تین‌کلاینت). این ویژگی به پیکربندی ویژه و راه‌اندازی یک کاربر اختصاصی یونیکس نیاز دارد. به شدت توصیه می‌شود این گزینه را با --disallow-module-loading ترکیب کنید (پایین را ببینید).
تبدیل شدن به دیمن پس از راه‌اندازی، یعنی جدا شدن از ترمینال. توجه داشته باشید هنگام اجرا به عنوان یک سرویس systemd، باید از --daemonize=no استفاده کنید تا اعلان‌های systemd کار کنند.
توقف راه‌اندازی با خطا هنگامی که هر یک از دستورهای مشخص‌شده در اسکریپت راه‌اندازی default.pa (پایین را ببینید) با شکست مواجه شود.
تلاش برای دستیابی به سطح nice بالای یونیکس. این کار تنها در صورتی موفقیت‌آمیز خواهد بود که برای کاربر فراخواننده حد منابع RLIMIT_NICE غیرصفر تنظیم شده باشد (در سامانه‌هایی که از این پشتیبانی می‌کنند)، یا برای اجرا به عنوان دیمن سیستمی پیکربندی شده باشیم (گزینه --system در بالا را ببینید). فعال کردن این گزینه توصیه می‌شود، زیرا تنها یک خطر امنیتی ناچیز دارد (پایین را ببینید).
تلاش برای دستیابی به زمان‌بندی بی‌درنگ (real-time) برای ریسه‌های ورودی/خروجی PulseAudio. این کار تنها در صورتی موفقیت‌آمیز خواهد بود که برای کاربر فراخواننده حد منابع RLIMIT_RTPRIO غیرصفر تنظیم شده باشد (در سامانه‌هایی که پشتیبانی می‌کنند)، یا rtkit در دسترس باشد و به PulseAudio اجازه فعال‌سازی زمان‌بندی بی‌درنگ را بدهد، یا برای اجرا به عنوان دیمن سیستمی پیکربندی شده باشیم (گزینه --system در بالا را ببینید).
عدم اجازه بارگذاری ماژول پس از راه‌اندازی. این یک ویژگی امنیتی است چرا که بارگذاری ماژول‌های اضافی در حین زمان اجرا و بنا به درخواست کاربر را غیرمجاز می‌کند. استفاده از آن در هنگام استفاده از --system به شدت توصیه می‌شود (بالا را ببینید). با این حال توجه داشته باشید که این کار برخی قابلیت‌ها مانند بارگذاری خودکار ماژول‌ها هنگام اتصال سخت‌افزار (hot plug) را مختل می‌کند.
عدم اجازه خروج به درخواست کاربر.
خاتمه دادن به دیمن پس از خروج آخرین کلاینت و سپری شدن این زمان به ثانیه. برای غیرفعال کردن این ویژگی از یک مقدار منفی استفاده کنید. مقدار پیش‌فرض ۲۰ است.

هنگامی که PulseAudio در حالت مختص هر کاربر اجرا می‌شود و یک نشست ورود (login session) را شناسایی می‌کند، هر مقدار مثبت به ۰ بازنشانی می‌شود تا PulseAudio بلافاصله پس از خروج از حساب کاربری خاتمه یابد. بنابراین مقدار مثبت تنها در محیط‌هایی اثرگذار است که هیچ پشتیبانی‌ای از ردیابی نشست ورود وجود نداشته باشد (یا اگر کاربر بدون ایجاد نشست وارد شده باشد، موسوم به lingering). همچنان می‌توان از یک مقدار منفی برای غیرفعال کردن هرگونه خروج خودکار استفاده کرد.

هنگامی که PulseAudio در حالت سیستمی اجرا می‌شود، خروج خودکار همواره غیرفعال است، بنابراین این گزینه کاری انجام نمی‌دهد.

تخلیه نمونه‌های بارگذاری‌شده خودکار از حافظه موقت (cache) هنگامی که برای تعداد ثانیه‌های مشخص‌شده استفاده نشده باشند.
اگر آرگومانی ارسال شود، سطح ثبت وقایع را روی مقدار مشخص‌شده تنظیم می‌کند، در غیر این صورت سطح پرگویی (verbosity) پیکربندی‌شده را یک واحد افزایش می‌دهد. سطوح ثبت وقایع اعدادی از ۰ تا ۴ هستند که متناظرند با error، warn، notice، info و debug. سطح پیش‌فرض ثبت وقایع notice است، یعنی تمام پیام‌های وقایع با سطوح پایین‌تر چاپ می‌شوند: error، warn و notice.
افزایش سطح پرگویی پیکربندی‌شده به اندازه یک واحد (به --log-level در بالا مراجعه کنید). برای افزایش سطح به دفعات بیشتر، این گزینه را چند بار مشخص کنید.
مشخص کردن مقصد ثبت وقایع. اگر روی auto تنظیم شود (پیش‌فرض)، در صورت ارسال --daemonize ثبت وقایع به syslog هدایت می‌شود، وگرنه به STDERR. اگر روی journal تنظیم شود، ثبت وقایع به ژورنال systemd هدایت خواهد شد. اگر روی file:PATH تنظیم شود، ثبت وقایع به فایلی که با PATH مشخص شده هدایت می‌گردد. newfile:PATH در موارد دیگر همانند file:PATH عمل می‌کند، اما فایل‌های موجود هرگز رونویسی نمی‌شوند. اگر فایل مشخص‌شده از قبل وجود داشته باشد، پسوندی به نام فایل افزوده می‌شود تا از رونویسی جلوگیری گردد.
نمایش مکان کد منبع در پیام‌های ثبت وقایع.
نمایش برچسب‌های زمانی در پیام‌های ثبت وقایع.
هنگامی که FRAMES بزرگ‌تر از ۰ باشد، برای هر پیام یک ردپای پشته (stack trace) تا تعداد فریم‌های مشخص‌شده پشته ثبت می‌شود.
تنظیم مسیر جستجو برای اشیاء اشتراکی پویا (پلاگین‌ها).
استفاده از روش بازنمونه‌برداری مشخص‌شده به صورت پیش‌فرض (برای مقادیر ممکن به --dump-resample-methods در بالا مراجعه کنید).
ایجاد یک فایل PID. اگر این گزینه غیرفعال باشد، امکان اجرای چندین کارگزار صوتی به ازای هر کاربر وجود خواهد داشت.
عدم اعمال محدودکننده بار پردازنده (CPU) در بسترهایی که از آن پشتیبانی می‌کنند. به‌طور پیش‌فرض، PulseAudio هنگامی که متوجه شود زمان پردازنده زیادی را مصرف می‌کند، خود را متوقف می‌سازد. این سازوکار به عنوان محافظی در برابر قفل شدن سامانه هنگام استفاده از زمان‌بندی بی‌درنگ مفید است (پایین را ببینید). غیرفعال کردن این سازوکار در هنگام اشکال‌زدایی PulseAudio با ابزارهایی مانند valgrind(1) که سرعت اجرا را کاهش می‌دهند سودمند است.
کلاینت‌های PulseAudio و کارگزار می‌توانند داده‌های صوتی را از طریق بخش‌های حافظه اشتراکی POSIX یا memfd مبادله کنند (در سامانه‌هایی که پشتیبانی می‌کنند). در صورت غیرفعال بودن، PulseAudio منحصراً از طریق سوکت‌ها ارتباط برقرار خواهد کرد. لطفاً توجه داشته باشید که انتقال داده‌ها از طریق حافظه اشتراکی همواره هنگام اجرای PulseAudio با گزینه فعال --system غیرفعال است (بالا را ببینید).
کلاینت‌های PulseAudio و کارگزار می‌توانند داده‌های صوتی را از طریق memfdها — سازوکار حافظه اشتراکی ناشناس هسته لینوکس — مبادله کنند (در هسته‌هایی که از آن پشتیبانی می‌کنند). در صورت غیرفعال بودن، PulseAudio از طریق حافظه اشتراکی POSIX ارتباط برقرار خواهد کرد.
بارگذاری ماژول افزونه مشخص‌شده با آرگومان‌های تعیین‌شده.
اجرای اسکریپت مشخص‌شده در هنگام راه‌اندازی. می‌تواند چندین بار برای تعیین چندین اسکریپت جهت اجرا به ترتیب مشخص شود. برای غیرفعال کردن بارگذاری اسکریپت پیش‌فرض default.pa آن را با -n ترکیب کنید (پایین را ببینید).
باز کردن یک مفسر دستور روی STDIN/STDOUT پس از راه‌اندازی. از این گزینه می‌توان برای پیکربندی پویای PulseAudio در زمان اجرا استفاده کرد. معادل --load=module-cli است.
عدم بارگذاری فایل اسکریپت پیش‌فرض default.pa (پایین را ببینید) در هنگام راه‌اندازی. در ترکیب با -C یا --file مفید است.

~/.config/pulse/daemon.conf، /etc/pulse/daemon.conf: تنظیمات پیکربندی برای دیمن PulseAudio. اگر نسخه موجود در دایرکتوری خانگی کاربر وجود نداشته باشد، فایل پیکربندی سراسری بارگذاری می‌شود. برای اطلاعات بیشتر pulse-daemon.conf(5) را ببینید.

~/.config/pulse/default.pa، /etc/pulse/default.pa: اسکریپت پیکربندی پیش‌فرض برای اجرا هنگام راه‌اندازی دیمن PulseAudio. اگر نسخه موجود در دایرکتوری خانگی کاربر وجود نداشته باشد، اسکریپت پیکربندی سراسری بارگذاری می‌شود. برای اطلاعات بیشتر default.pa(5) را ببینید.

~/.config/pulse/client.conf، /etc/pulse/client.conf: تنظیمات پیکربندی برای برنامه‌های کلاینت PulseAudio. اگر نسخه موجود در دایرکتوری خانگی کاربر وجود نداشته باشد، فایل پیکربندی سراسری بارگذاری می‌شود. برای اطلاعات بیشتر pulse-client.conf(5) را ببینید.

SIGINT, SIGTERM: دیمن PulseAudio خاموش خواهد شد (مشابه --kill).

SIGHUP: برون‌ریزی یک گزارش وضعیت کامل به STDOUT یا syslog، بسته به نوع پیکربندی.

SIGUSR1: بارگذاری module-cli، که امکان پیکربندی مجدد در زمان اجرا را از طریق STDIN/STDOUT فراهم می‌سازد.

SIGUSR2: بارگذاری module-cli-protocol-unix، که امکان پیکربندی مجدد در زمان اجرا را از طریق یک سوکت AF_UNIX فراهم می‌سازد. برای اطلاعات بیشتر pacmd(1) را ببینید.

گروه pulse-access: اگر PulseAudio به عنوان یک دیمن سیستمی اجرا شود (به --system در بالا مراجعه کنید)، اعضای این گروه هنگام اتصال از طریق سوکت‌های AF_UNIX دسترسی خواهند داشت. اگر PulseAudio به عنوان یک دیمن کاربری اجرا شود، این گروه کاربردی ندارد.

کاربر pulse، گروه pulse: اگر PulseAudio به عنوان دیمن سیستمی اجرا شود (به --system در بالا مراجعه کنید) و با دسترسی ریشه (root) آغاز به کار کرده باشد، دیمن اختیارات خود را کاهش داده و با استفاده از این کاربر و گروه به یک فرایند کاربری عادی تبدیل می‌شود. اگر PulseAudio به عنوان دیمن کاربری اجرا شود، این کاربر و گروه معنایی نخواهند داشت.

برای به حداقل رساندن خطر افت یا گسستگی صدا در حین پخش، توصیه می‌شود در صورتی که بستر زیرین پشتیبانی کند، PulseAudio با زمان‌بندی بی‌درنگ (real-time) اجرا شود. این کار تأخیر زمان‌بندی دیمن PulseAudio را از بار سیستم جدا می‌کند و بهترین راه برای اطمینان از این است که PulseAudio همیشه در زمان نیاز برای پر کردن بافرهای سخت‌افزاری پخش، زمان پردازنده (CPU) دریافت کند. متأسفانه این امر می‌تواند در برخی سامانه‌ها یک ریسک امنیتی باشد، زیرا PulseAudio به عنوان فرایند کاربری اجرا می‌شود و اعطای اختیارات زمان‌بندی بی‌درنگ به یک کاربر، همیشه این خطر را به همراه دارد که از آن برای قفل کردن سیستم سوءاستفاده شود — چرا که بی‌درنگ کردن یک فرایند عملاً حق تقدم (preemption) را غیرفعال می‌سازد. برای حل این مشکل، PulseAudio در صورت در دسترس بودن از rtkit برای دستیابی ایمن به زمان‌بندی بی‌درنگ استفاده می‌کند.

اگر خطر قفل شدن دستگاه برای فعال کردن زمان‌بندی بی‌درنگ بیش از حد ارزیابی شود، می‌توان زمان‌بندی با اولویت بالا (یعنی سطح nice منفی) را به جای آن فعال کرد. این کار با ارسال --high-priority (بالا را ببینید) در زمان راه‌اندازی PulseAudio قابل فعال‌سازی است و همچنین می‌تواند با گزینه مناسب در daemon.conf فعال شود. سطوح nice منفی تنها زمانی می‌توانند فعال شوند که حد منابع مناسب RLIMIT_NICE تنظیم شده باشد (برای اطلاعات بیشتر به setrlimit(2) مراجعه کنید)، که معمولاً در /etc/security/limits.conf پیکربندی می‌شود. مقدار حد منابع ۳۱ (متناظر با سطح nice برابر -11) توصیه می‌شود.

کتابخانه‌های کلاینت PulseAudio وجود متغیرهای محیطی زیر را بررسی کرده و پیکربندی محلی خود را متناسب با آن‌ها تغییر می‌دهند:

$PULSE_SERVER: رشته کارگزار که مشخص‌کننده سرور مقصد جهت اتصال است، هنگامی که کلاینت درخواست اتصال به یک کارگزار صدا را دارد و صریحاً سرور خاصی را مشخص نکرده است. رشته کارگزار فهرستی از نشانی‌های سرور است که با فاصله جدا شده‌اند و به نوبت آزمایش می‌شوند. نشانی کارگزار شامل یک مشخص‌کننده اختیاری نوع نشانی (unix: ،tcp: ،tcp4: ،tcp6:) و در ادامه یک مسیر یا نشانی میزبان است. نشانی میزبان می‌تواند شامل یک شماره پورت اختیاری باشد. یک نشانی سرور می‌تواند با رشته‌ای محصور در {} پیشوندگذاری شود. در این صورت نشانی سرور پس از آن نادیده گرفته می‌شود مگر اینکه رشته پیشوند با نام میزبان محلی یا شناسه ماشین (/etc/machine-id) یکسان باشد.

$PULSE_SINK: نام نمادین سینک خروجی برای اتصال، زمانی که یک کلاینت یک جریان پخش ایجاد می‌کند و صریحاً سینک خاصی را درخواست نکرده است.

$PULSE_SOURCE: نام نمادین منبع ورودی برای اتصال، زمانی که یک کلاینت یک جریان ضبط ایجاد می‌کند و صریحاً منبع خاصی را درخواست نکرده است.

$PULSE_BINARY: مسیر فایل اجرایی PulseAudio برای اجرا هنگامی که از زایش خودکار (autospawn) کارگزار استفاده می‌شود.

$PULSE_CLIENTCONFIG: مسیر فایلی که باید به جای client.conf (بالا را ببینید) برای پیکربندی کلاینت خوانده شود.

$PULSE_COOKIE: مسیر فایلی که حاوی کوکی احراز هویت PulseAudio است. پیش‌فرض روی ~/.config/pulse/cookie قرار دارد.

این تنظیمات محیطی — در صورت تنظیم بودن — نسبت به تنظیمات پیکربندی client.conf (بالا را ببینید) تقدم دارند.

توسعه‌دهندگان PulseAudio <pulseaudio-discuss (at) lists (dot) freedesktop (dot) org>؛ پالس‌آودیو در http://pulseaudio.org در دسترس است.

pulse-daemon.conf(5), default.pa(5), pulse-client.conf(5), pacmd(1)

User Manuals