مک را بعد از کار VPN خاموش کن، نه قبل از آن
اول تونل یا اول کار تعیین میکند که خاموشکردن خستهکننده باشد یا نه. بارگذاری را تمام کن، اشتراک را جدا کن، تونلی را که مالک آن است متوقف کن، بعد خاموش کن.
دو نفر پس از کار همان مک را خاموش میکنند و نتیجههای متفاوتی میگیرند. یکی بارگذاریای را از دست میدهد که نود درصد کامل شده بود؛ دیگری بیست ثانیه بعد در را میبندد و همهچیز ذخیره شده است. تفاوت نه شانس است و نه سرعت دیسک. تفاوت در ترتیبی است که آن دو نشست خصوصی، اشتراک و تونل را میبندند، و در اینکه چیزی منتظر پایان این مرحلهها هست یا نه.
مقایسهٔ زیر میان «اول تونل» و «اول کار» است، چون همین یک انتخاب بیشتر نتیجههای بد را توضیح میدهد.
دو ترتیب خاموشکردن، دو نتیجه
اول تونل مرتب به نظر میرسد: منوی VPN میگوید قطع اتصال، نماد ناپدید میشود، و بعد کاربر سندها را میبندد و خاموش میکند. مشکل این است که قطع اتصال ممکن است مسیرها و اشتراک سوارشده را پیش از پایان نوشتن برنامه بردارد، و یک بارگذاری در جریان جایی برای رفتن نداشته باشد. کاربر قطعی تمیز میبیند و گمان میکند بقیه امن است. ناپدید شدن یک نماد هیچ چیزی دربارهٔ تمام شدن برنامه نمیگوید. بعد خاموشکردن بهطور عادی روی مسیری از شبکه ادامه مییابد که دیگر ترافیک مورد نیاز برنامه را حمل نمیکند.
اول کار چند ثانیه کندتر و بسیار کمحادثهتر است. عملیات خصوصی کامل میشود، اشتراک عمداً جدا میشود، و تنها پس از آن تونل ناپدید میشود. خاموشکردن بعدی دیگر چیزی برای قطع کردن ندارد.
چرا اشتراک باید پیش از تونل برود
اشتراک شبکهٔ سوارشده یک وابستگی زنده است، نه یک پوشه. کلاینت دستگیرهها را باز نگه میدارد، سرور اجارهها را دنبال میکند، و نوشتنی که هنوز در صف است به همان نشست تعلق دارد. کشیدن تونل از زیر آن، سوارشدن کهنهٔ کلاسیک را میسازد: Finder اشتراک را نشان میدهد، هر دسترسی معلق میشود، و تنها درمان، جداسازی اجباری و گاهی خروج از حساب است.
با اقدام پشتیبانیشده جدا کن، پس از آنکه فعالیت فایلها ایستاد. در macOS این کنترل خروج در Finder است یا diskutil unmount عمدی برای نقطهٔ سوارشدن، نه قطع اتصال شبکهٔ زیرین. سپس در نوار کناری تأیید کن که اشتراک رفته است، پیش از آنکه به VPN دست بزنی.
اگر اشتراک از جدا شدن سر باز زند، چیزی هنوز فایلی را باز نگه داشته است. پیدایش کن، ببندش و دوباره تلاش کن. سر باز زدن اطلاعات است؛ جداسازی اجباری آن را به از دست رفتن داده تبدیل میکند.
کلاینتی را که مالک نشست است متوقف کن
نشست VPN یک مالک دارد و تنها همان مالک میتواند آن را تمیز متوقف کند. اتصالهای Tunnelblick از طریق Tunnelblick متوقف میشوند. پیکربندی بومی از طریق کنترل خود سیستم یا برنامهای که آن را مدیریت میکند متوقف میشود. اجرای یک فایل باینری جداگانهٔ OpenVPN در برابر پروفایلی با نام مشابه، نشستِ مدیریتشده توسط برنامه را متوقف نمیکند و میتواند دو فرایند را باقی بگذارد که بر سر اینکه چه کسی دستگاه تونل را دارد همنظر نیستند.
مراقب بازیابی خودکار باش. یک قاعدهٔ On Demand یا پروفایل مدیریتشده میتواند اتصال را چند ثانیه پس از یک توقف عمدی دوباره آغاز کند، که شبیه نادیده گرفتن فرمان از سوی کلاینت است. این رفتار سیاست است، نه باگ، و باید با صاحب سیاست حل شود نه با جنگیدن با کمکی که پیوسته اتصال را قطع میکند.
برخی کلاینتها «درخواست قطع» را از «پایان برچیدن» جدا میکنند. اگر گردش کار منتظر پایان است، وضعیت خود کلاینت را بخوان و به آن مهلتی محدود بده. خواب دلبخواه یک ثانیهای انتظار نیست، و کشتن هر فرایندی با نامی شبیه VPN برچیدن نیست.
خاموشکردن سیستمعامل را به حال خود بگذار
مرحلهٔ آخر باید یک خاموشکردن عادی باشد: منوی Apple، میانبر صفحهکلید یا فرمان shutdown زمانبندیشده. این مسیر به برنامهها اجازهٔ ذخیره میدهد، از کاربر دربارهٔ کار ذخیرهنشده میپرسد و حجمها را به ترتیب مورد انتظار جدا میکند. این همچنین مسیری است که خرابیهایش بهگونهای گزارش میشود که کسی بتواند اشکالزدایی کند.
قطع اجباری برق همهٔ اینها را نادیده میگیرد. ابزار درست است وقتی دستگاه واقعاً گیر کرده، و ابزار نادرست بهعنوان راهی روتین برای رسیدن به مهلت. خاموشکردن اجباری که یک بارگذاری را دور میریزد سریعتر از انتظار نیست؛ فقط هزینه را به صبح بعد منتقل میکند.
راهنمای Apple دربارهٔ خاموشکردن همان مرز را میکشد و حالت اجباری را جداگانه توصیف میکند. آن را دلیلی برای درست کردن ترتیب بخوان، نه اجازهای برای تبدیل خاموشکردن اجباری به بخشی از روال روزانه.
مهلت را در برنامه بگذار
اگر مک باید در زمانی ثابت خاموش باشد، آمادهسازی را زمانی آغاز کن که نشست کاربر هنوز زنده است. انتظار تا دقیقهٔ آخر برای پاکسازی همان راهی است که یک درخواست MFA، یک نوشتن ناتمام یا یک سوارشدن سرسخت را به حادثه تبدیل میکند. به زنجیره زمان شروع بده، نه فقط زمان پایان.
تصمیم بگیر وقتی یک مرحله از بودجهاش فراتر میرود چه میشود. گزینهها آگاه کردن کاربر، لغو خاموشکردن یا پیروی از رویهٔ تأییدشدهٔ دیگری است. بالا بردن خاموش «پاکسازی بیش از حد طول کشید» به قطع اجباری برق تنها گزینهای است که نتیجهای را تضمین میکند که همه میکوشیدند از آن پرهیز کنند.
در نوشتار، قاعده کوتاه است: کار خصوصی را تمام کن، نشست وابسته را ببند، تونل را از طریق مالکش متوقف کن و بعد بهطور عادی خاموش کن. چهار مرحله به این ترتیب، با مهلتی پیوسته به هر یک.