| profile-sync-daemon(1) | profile-sync-daemon(1) |
نام (NAME)
profile-sync-daemon - ایجاد پیوند نمادین و همگامسازی نمایههای مرورگر با حافظه RAM (tmpfs) جهت کاهش مراجعات دیسک سخت/SSD و افزایش سرعت مرورگرها
توضیحات (DESCRIPTION)
برنامه Profile-sync-daemon (psd) یک شبهدیمن کوچک است که برای مدیریت نمایه/نمایههای مرورگر در tmpfs و همگامسازی دورهای آنها با دیسک فیزیکی (HDD/SSD) طراحی شده است. این کار با استفادهای نوآورانه از rsync برای برقراری همگامسازی میان رونوشت tmpfs و نسخه پشتیبان مقیم در رسانه فیزیکی نمایه/نمایههای مرورگر محقق میشود. علاوه بر این، psd دارای چندین ویژگی بازیابی پس از خرابی (crash-recovery) است.
اهداف طراحی psd:
- تجربه کاربری کاملاً نامحسوس و شفاف.
- سرعت.
از آنجا که نمایه/نمایهها، حافظه موقت (کَش) مرورگر* و غیره به tmpfs (دیسک RAM) منتقل میشوند، ورودی/خروجی (I/O) متناظر با استفاده از مرورگر نیز از دیسک فیزیکی به RAM بازگردانده میشود؛ بنابراین پاسخدهی مرورگر هنگام خواندن/نوشتن روی نمایهها بهبود مییابد.
*توجه داشته باشید که برخی مرورگرها مانند Chrome/Chromium، Firefox، Midori و Rekonq در واقع دایرکتوریهای کَش خود را جدا از دایرکتوری نمایه مرورگر نگه میدارند. تغییر این رفتار در حیطه وظایف Profile-sync-daemon نیست؛ کاربرانی که مایل به جابجایی این دایرکتوری هستند میتوانند برای مشاهده چندین راهحل به نشانی اینترنتی زیر مراجعه کنند: https://wiki.archlinux.org/index.php/Chromium_Tips_and_Tweaks#Cache_in_tmpfs
پیکربندی (SETUP)
فایل $XDG_CONFIG_HOME/psd/psd.conf (که در ادامه به آن «فایل پیکربندی» گفته میشود) شامل تمام تنظیمات مدیریتی کاربر است.
نکته: ویرایشهای انجامشده در فایل پیکربندی در زمان فعال بودن psd، تنها پس از راهاندازی مجدد سرویس اعمال خواهند شد.
- از زمان انتشار نسخه v7.00 برنامه psd، حالت overlayfs تنها گزینه پشتیبانیشده است. این حالت سرعت همگامسازی را ارتقا داده و حافظه کمتری مصرف میکند.
- به صورت اختیاری مشخص کنید کدام مرورگرها در آرایه BROWSERS مدیریت شوند. اگر مرورگری تعیین نشود، مقدار پیشفرض تمام مرورگرهای شناساییشده خواهد بود.
- به صورت اختیاری میتوانید ایجاد تصاویر لحظهای بازیابی پس از خرابی را غیرفعال کنید (توصیه نمیشود). این کار را در متغیر USE_BACKUPS انجام دهید.
- به صورت اختیاری تعداد تصاویر لحظهای بازیابی برای نگهداری را مشخص کنید. این تنظیم را در متغیر BACKUP_LIMIT انجام دهید.
نکته: گاهی اوقات در بالادست (upstream)، تغییرات یا بهروزرسانیهایی در فایل پیکربندی پیشفرض (/usr/share/psd/psd.conf) اعمال میشود. باید رونوشت کاربر ($XDG_CONFIG_HOME/psd/psd.conf) را با آن مقایسه (diff) کرد.
اجرای PSD (RUNNING PSD)
حالت پیشنمایش (PREVIEW MODE)
گزینه پیشنمایش (preview) میتواند فراخوانی شود تا بر اساس ورودیهای فایل پیکربندی، دقیقاً نشان دهد psd چه کاری انجام خواهد داد یا در حال انجام چه کاری است. این حالت همچنین اطلاعات مفیدی مانند اندازه نمایه، مسیرها و ایجاد شدن یا نشدن تصاویر لحظهای بازیابی را نمایش میدهد.
% Profile-sync-daemon v7.00
systemd service: active resync-timer: active Psd will manage the following per /home/facade/.config/psd/.psd.conf: browser/psname: chromium/chromium owner/group id: facade/100 sync target: /home/facade/.config/chromium tmpfs dir: /run/user/1000/psd/facade-chromium profile size: 110M overlayfs size: 64M recovery dirs: none browser/psname: firefox/firefox owner/group id: facade/100 sync target: /home/facade/.config/mozilla/firefox/z0pauair.default tmpfs dir: /run/user/1000/psd/facade-firefox-z0pauair.default profile size: 4.0K overlayfs size: 0 recovery dirs: none browser/psname: firefox/firefox owner/group id: facade/100 sync target: /home/facade/.config/mozilla/firefox/kgtk05jp.default-release tmpfs dir: /run/user/1000/psd/facade-firefox-kgtk05jp.default-release profile size: 20M overlayfs size: 19M recovery dirs: none
شروع و توقف PSD (START AND STOP PSD)
برنامه psd به همراه یک سرویس کاربری systemd برای شروع یا توقف آن ارائه میشود (psd.service).
علاوه بر این، یک resync-timer ارائهشده است که همگامسازی مجدد ساعتی را از tmpfs به دیسک اجرا میکند. این resync-timer به طور خودکار به همراه psd.service شروع میشود؛ بنابراین نیازی به راهاندازی دستی تایمر نیست و فقط باید psd.service را فعال کرد.
البته، بسامد همگامسازی مجدد را میتوان از طریق یک فایل جانشین (drop-in) در systemd تنظیم کرد. برای مثال، برای اجرای همگامسازی مجدد در هر ۱۵ دقیقه:
% systemctl --user edit psd-resync.timer [Timer] OnCalendar=*:0/15 % systemctl --user [option] psd.service
حالت پاکسازی (CLEAN MODE)
حالت پاکسازی (clean mode) تمام تصاویر لحظهای بازیابی انباشتهشده را حذف خواهد کرد. تنها زمانی آن را اجرا کنید که مطمئن باشید دیگر به آنها نیازی نیست.
% psd c Profile-sync-daemon v7.00 Deleting 2 crashrecovery dirs for profile /home/facade/.config/chromium /home/facade/.config/chromium-backup-crashrecovery-20260209_171359 /home/facade/.config/chromium-backup-crashrecovery-20260209_112204
مرورگرهای پشتیبانیشده (SUPPORTED BROWSERS)
- Chromium (نسخههای stable، beta و dev)
- Conkeror
- Epiphany
- Falkon
- Firefox (نسخههای 147 و بالاتر از مشخصات دایرکتوری پایه XDG در freedesktop.org استفاده میکنند، سایرین از مسیر قدیمی ~/.mozilla استفاده مینمایند)
- Firefox-trunk (این مرورگر فقط ویژه اوبونتو است: http://www.webupd8.org/2011/05/install-firefox-nightly-from-ubuntu-ppa.html)
- Google Chrome (نسخههای stable، beta و dev)
- نسخه Heftig از مرورگر Aurora (آرچ لینوکس: https://bbs.archlinux.org/viewtopic.php?id=117157)
- Icecat
- Iceweasel
- Inox (https://bbs.archlinux.org/viewtopic.php?id=198763)
- Luakit
- Midori
- Opera (نسخههای legacy، stable، next و developer)
- Otter-browser
- Palemoon
- QupZilla
- Qutebrowser
- Rekonq
- Seamonkey
- Vivaldi
- Vivaldi-snapshot
زیرساخت psd در اصل میتواند با هر مرورگری که از قالبهای عمومی chrome یا mozilla و غیره استفاده میکند کار کند. نمایههای ارائهشده توسط کاربران در مسیر /usr/share/psd/contrib/ قرار دارند و در صورتی که کاربری تمایل به همگامسازی آن مرورگر خاص داشته باشد، میتوانند به صورت دستی در /usr/share/psd/browsers/ رونوشت شوند. یک ورودی متناظر در آرایه BROWSERS در فایل پیکربندی ایجاد کنید. پشتیبانی رسمی از این موارد انجام نمیشود.
نکته درباره نمایههای دارای پیوند نمادین (NOTE ON SYMLINKED PROFILES)
در حال حاضر، psd از نمایههای دارای پیوند نمادین (symlink) پشتیبانی نمیکند و در صورت شناسایی چنین موردی، از همگامسازی خودداری خواهد کرد. برای مثال، اگر نمایه firefox شما ~/.mozilla/firefox/f8cv8bfu.default باشد اما آن دایرکتوری را به /foo/bar/f8cv8bfu.default منتقل کرده و آن را با یک پیوند نمادین جایگزین کرده باشید:
% ls -l ~/.mozilla/firefox lrwxrwxrwx 1 facade users 26 Oct 1 17:02 f8cv8bfu.default -> /foo/bar/f8cv8bfu.defaultاجرای psd در حالت پیشنمایش با خطایی خاتمه مییابد که این موضوع را به شما اطلاع میدهد:
% psd p Warning! /home/facade/.mozilla/firefox/f8cv8bfu.default appears to be a symlink but these are not supported. Please make the browser profile a live directory and try again. Exiting.یک راهحل مناسب برای firefox این است که به سادگی فایل ~/.mozilla/firefox/profiles.ini را ویرایش کرده و مسیر استاندارد (canonical path) را در آنجا تعیین کنید. همچنین باید پرچم IsRelative را به صورت زیر تنظیم نمایید:
[Profile0] Name=default IsRelative=0 Path=/foo/bar/f8cv8bfu.defaultممکن است راهحلهای دیگری برای سایر مرورگرها وجود داشته باشد، اما مستندسازی همه آنها در اینجا خارج از حوزه این سند است.
توزیعهای پشتیبانیشده (SUPPORTED DISTROS)
از آنجا که psd صرفاً یک اسکریپت bash با یک سرویس systemd است، باید روی هر توزیعی از لینوکس که systemd را اجرا میکند کار کند. چندین توزیع بسته رسمی یا گزینهای نگهداریشده توسط کاربران را برای نصب psd ارائه میدهند. همچنین میتوان psd را از کد مبدأ ساخت. برای اطلاع از بستههای موجود، وابستگیها و دستورالعملهای نصب به وبگاه رسمی مراجعه کنید.
پرسشهای متداول (FAQ)
پرسش ۱: چرا هنگام فعالسازی overlayfs یک دایرکتوری نمایه مرورگر دیگر با نام «foo-back-ovfs» دارم؟
پاسخ ۱: نحوه عملکرد overlayfs بدین صورت است که یک رونوشت پایه فقطخواندنی (اصطلاحاً lower dir) از نمایه را سوار (mount) کرده و دادههای جدید را روی آن مدیریت میکند. به منظور جلوگیری از همگامسازی مجدد بر روی فایلسیستم فقطخواندنی، در عوض از یک رونوشت استفاده میشود. بنابراین استفاده از overlayfs یک مبادله و مصالحه است: همگامسازی اولیه سریعتر و مصرف حافظه کمتر در ازای مصرف فضای دیسک در دایرکتوری خانه.
پرسش ۲: برای جا دادن نمایه/نمایههایم در /run/user/xxxx به حافظه بیشتری نیاز دارم. چگونه میتوانم حافظه بیشتری اختصاص دهم؟
پاسخ ۲: روش استاندارد برای کنترل اندازه /run/user/ استفاده از دستورالعمل RuntimeDirectorySize در logind.conf است (برای اطلاعات بیشتر صفحه راهنمای logind.conf را ببینید). به طور پیشفرض، ۱۰٪ از حافظه فیزیکی استفاده میشود، اما میتوان آن را با اطمینان افزایش داد. به یاد داشته باشید که tmpfs تنها به میزانی که واقعاً استفاده شده حافظه مصرف میکند؛ عددی که در اینجا مشخص میشود صرفاً حداکثر مقدار مجاز است.
پرسش ۳: سیستم من به دلایلی دچار خرابی (crash) شد و psd همگامسازی را به دیسک بازنگرداند. چه کاری باید انجام دهم؟
پاسخ ۳: «آخرین نسخه پشتیبان سالم» از نمایه/نمایههای مرورگر باید روی فایلسیستم باقی مانده باشد. هنگام راهاندازی مجدد psd (مثلاً پس از راهاندازی مجدد رایانه)، بررسی میشود که آیا پیوند نمادین به رونوشت tmpfs نمایه نامعتبر است یا خیر. در صورت نامعتبر بودن، psd قبل از جایگزینی آخرین پشتیبان سالم، یک تصویر لحظهای از آن تهیه میکند. این کار بیشتر برای اطمینان از این است که psd آسیبی نرسانده و هرگونه از دست رفتن داده به دلیل عامل دیگری بوده است.
پرسش ۴: این تصویر لحظهای را کجا پیدا کنم؟
پاسخ ۴: این موضوع به مرورگر بستگی دارد. تصویر لحظهای در همان دایرکتوری نمایه مرورگر قرار خواهد گرفت و شامل یک برچسب تاریخ و زمان متناظر با زمان انجام بازیابی خواهد بود. برای مثال، تصویر لحظهای chromium به صورت ~/.config/chromium-backup-crashrecovery-20130912_153310 خواهد بود -- البته پسوند تاریخ و زمان متفاوت خواهد بود.
پرسش ۵: چگونه میتوانم تصویر لحظهای را بازیابی کنم؟
پاسخ ۵: این مراحل را دنبال کنید:
- 1.
- سرویس psd را متوقف کنید.
- 2.
- رونوشت «خراب» نمایه را به یک نسخه پشتیبان منتقل کنید (چیزی را کورکورانه حذف نکنید).
- 3.
- دایرکتوری تصویر لحظهای را با نامی که مرورگر انتظار دارد رونوشت (کپی) کنید.
مثال با استفاده از chromium:
- 1.
- systemctl --user stop psd.service
- 2.
- mv ~/.config/chromium ~/.config/chromium-bad
- 3.
- cp -a ~/.config/chromium-backup-crashrecovery-20130912_153310 ~/.config/chromium
در این مرحله، chromium را اجرا کنید تا از تصویر لحظهای پشتیبان که به تازگی در جای خود رونوشت شده استفاده نماید. اگر همه چیز درست بود، میتوانید دایرکتوری ~/.config/chromium-bad و تصویر لحظهای را با خیال راحت حذف کنید. به یاد داشته باشید برای شروع psd، هیچ مرورگری نباید باز باشد (در غیر این صورت psd از شروع به کار خودداری میکند).
پرسش ۶: آیا psd میتواند تصاویر لحظهای را به طور خودکار حذف کند؟
پاسخ ۶: بله، psd را با گزینه «clean» اجرا کنید تا تصاویر لحظهای حذف شوند.
مشارکت (CONTRIBUTE)
کاربرانی که مایل به مشارکت در این پروژه هستند، باید آن را fork کرده و یک pull request ارسال نمایند. کد مبدأ به صورت رایگان در github در دسترس است.
گزارش باگها (BUGS)
باگی پیدا کردهاید؟ لطفاً یک issue ایجاد کنید.
- •
- چندین مورد از دست رفتن داده هنگام استفاده همزمان از eCryptFS و psd گزارش شده است؛ بنابراین تا زمانی که این مشکل حل و فصل شود، به کاربران eCryptFS توصیه میشود از psd استفاده نکنند مگر اینکه مایل به کمک در عیبیابی خرابیهای احتمالی مرورگر باشند. ببینید: https://github.com/graysky2/profile-sync-daemon/issues/158
برخط (ONLINE)
نویسندگان (AUTHORS)
graysky (therealgraysky AT proton DOT me)
| 22 March 2026 |