یک Mac را برای یک وظیفهٔ VPN بیدار نگه دارید، نه برای خود VPN
caffeinate برای فرمانِ پیچیدهشده یک ادعای برق نگه میدارد، نه بیشتر. نمیتواند کلیدهای تونل را تازه کند، نشستی را طولانی کند یا درپوش بسته را تحمل کند.
شما به یک انتقال نیاز دارید که وقتی کنار میروید تمام شود، و خوابیدن Mac مظنون آشکار است. caffeinate میتواند دقیقاً برای همان بازه یک ادعای برق نگه دارد، و ابزاری باریکتر از آن است که در نگاه اول به نظر میرسد. هنگام اجرای یک فرمان از خواب بیکاری جلوگیری میکند؛ نشست VPN را زنده نگه نمیدارد، و انتقالی را از اعتبارنامهای که نیمهشب منقضی میشود نجات نمیدهد. دانستن اینکه دامنهٔ آن کجا تمام میشود همان چیزی است که مانع میشود شکست بعدی به لایهٔ اشتباه نسبت داده شود.
ادعا در واقع چه چیزی را نگه میدارد
این ابزار از سامانهٔ مدیریت توان میخواهد تا زمانی که فرایند پیچیدهشده زنده است یک ادعا باز بماند. وقتی فرایند خارج شود، ادعا هم با آن میرود. همین طول عمر بخش سودمند است: شما یک تنظیم سراسری ماشین را جابهجا نمیکنید و امیدوار نیستید یادتان بماند بعداً آن را برگردانید.
پرچمها ادعاهای مختلفی را انتخاب میکنند. -i از خواب بیکاری سامانه جلوگیری میکند. -d خواب نمایشگر را هدف میگیرد، و -s خواب سامانه را در موقعیتهایی هدف میگیرد که سامانه اجازه میدهد. هیچکدام وعدهٔ فراگیر «بیدار ماندن» نیستند، و هیچکدام قفل صفحه را باز نمیکند یا مانع بسته شدن درپوش نمیشود. آنکه با وقفهای که واقعاً دیدهاید میخواند را انتخاب کنید.
این تفاوت وقتی مهم میشود که کسی گزارش میدهد Mac «با این حال خوابید». پرسش این است که کدام ادعا درخواست شد، برای چه مدت، و کدام رویداد باعث خواب شد. مدیریت توان چندین ورودی را ارزیابی میکند و یک ادعا یکی از آنها را پوشش میدهد.
وظیفه را بپیچید، نه اینکه نشست را بیارایید
caffeinate -i /usr/bin/ssh [email protected]
این ادعای بیکاری را تا زمانی که کلاینت SSH اجرا میشود نگه میدارد، که تمام هدف پیچیدن بهجای اجرا در پسزمینه است. نمایهٔ VPN دستنخورده میماند، هیچ سیگنال نگهدارندهای فرستاده نمیشود، و هیچچیز در پیکربندی تونل تغییر نمیکند.
برای یک بازهٔ محدود، پرچم مدت زمان صورت صادقانه است:
caffeinate -i -t 1800
وقتی وظیفه زودتر تمام شد، آن فراخوانی را با وقفهٔ معمولش متوقف کنید. انبوهی از پوششها را در پسزمینه رها نکنید و بعد با کشتن هر فرایندی که همان نام را دارد تمیزکاری نکنید؛ چیزی را از بین میبرید که میخواستید نگه دارید.
خواب یک علت است، نه آن علت
جلوگیری از خواب بیکاری یک وقفه را از فهرست حذف میکند. این کار فرمان خواب عمدی، درپوش بسته، قطع برق یا سیاستی که مدیر تعیین کرده را باطل نمیکند. اینها تصمیمهای جداگانهای هستند، و انتظار اینکه یک ادعای سطح کاربر بر آنها پیروز شود همان راهی است که مردم نتیجه میگیرند ابزار کار نمیکند.
خواب نمایشگر و قفل صفحه هم جداگانهاند. Mac میتواند با نمایشگر خاموش بیدار بماند، و میتواند در حالی که وظیفه ادامه دارد قفل شود. اگر نیاز صفحهٔ روشن است، آن پرچم دیگری است؛ اگر نیاز صفحهٔ قفلنشده است، هیچ پرچمی آن را فراهم نمیکند. پیش از انتخاب کلید بگویید کدامیک از این سه نتیجه را واقعاً لازم دارید، چون آنها یک رفتار با نامهای مختلف نیستند.
نشست VPN ساعت خودش را دارد
تونل IPsec یا TLS کلیدها را بر پایهٔ زمانبندی توافقشدهٔ دو سر تازه میکند، و سرور میتواند صرفنظر از فعالیت کلاینت حداکثر عمر نشست را تحمیل کند. اعتبارنامهها منقضی میشوند. پیوند دسترسی میتواند به دلایلی که هیچ ربطی به بیدار بودن لپتاپ ندارد قطع شود. هیچیک از اینها به ادعای برق اهمیت نمیدهد.
پس وقتی ترافیک سودمند شکست میخورد در حالی که Mac آشکارا بیدار است، افزایش مدت زمان نه توضیح است و نه تعمیر. شکست را بخوانید: خطای تازهسازی کلید، انقضای احراز هویت و افت حامل در گزارش تونل متفاوت دیده میشوند و هرکدام راهحل خودشان را دارند.
دوام را روی میزبان دور بگذارید
اگر از دست رفتن اتصال محلی ساعتها کار را هدر میدهد، پاسخ در آن سوی ماجراست. یک چندپلکسکنندهٔ ترمینال وقتی SSH میمیرد نشست را روی سرور زنده نگه میدارد، و یک سامانهٔ کار وقتی نشست تمام میشود کار را زنده نگه میدارد. هیچکدام به وضعیت برق لپتاپ وابسته نیست.
این مرز شکست دیگری است، و همان است که برای کارهای طولانی اهمیت دارد. این دو را فقط وقتی هر دو درستاند ترکیب کنید: ماشین باید برای بخش محلی کار بیدار بماند، و بخش دور باید از قطع اتصال جان سالم به در ببرد. سپس با اتصال دوباره از ترمینال دوم و بررسی اینکه کار هنوز در حال اجراست آن را تأیید کنید.
بنویسید از کدام ادعا استفاده کردید و کِی تمام میشود. یک انتخاب عملیاتی کوتاهمدت اشکالی ندارد؛ یک انتخاب دائمی بیتوضیح شش ماه بعد به یک تیکت پشتیبانی تبدیل میشود، وقتی هیچکس یادش نیست چرا Mac هرگز نمیخوابد.