Skip to content

Підтримання дистрибутивів WSL у робочому стані ​

Багато користувачів, які лише починають знайомитися з WSL2, стикаються з "загадкою": Linux нібито встановлено, але чому після закриття термінала він за деякий час "автоматично вимикається"? Чому він не може працювати постійно?

Ця стаття спочатку опише це явище, потім пояснить, чому Microsoft так спроєктував WSL, і нарешті розповість, як за допомогою WSL Dashboard запустити дистрибутив Linux у режимі keep-alive (підтримання в робочому стані).

1. Поточна ситуація: після закриття термінала Linux швидко вимикається автоматично ​

Чи траплялася з вами така ситуація?

  1. Ви відкриваєте термінал якогось дистрибутива Linux, і Linux запускається автоматично, без виконання жодних команд;
  2. Після закриття вікна термінала Linux не продовжує працювати — приблизно через 60 секунд він автоматично вимикається;
  3. Ви знову відкриваєте термінал, і Linux знову запускається автоматично — і так по колу.

NOTE

Типовий "час простою" (idle timeout) WSL2 становить близько 60 секунд: коли в дистрибутиві не виконується жоден процес (наприклад, коли ви закрили всі термінали), віртуальна машина WSL автоматично вимикається, щоб звільнити системні ресурси, зокрема пам'ять.

Така поведінка є типовим задумом WSL2 — це не несправність і не помилка.

2. Чому Microsoft так спроєктував WSL? ​

2.1 WSL2 по суті є легкою віртуальною машиною ​

WSL2 запускає повне ядро Linux у легкій віртуальній машині Hyper-V (utility VM). Кожен запущений дистрибутив реально займає ресурси пам'яті. Якби всі дистрибутиви постійно працювали у фоні, а одна машина одночасно запускала кілька дистрибутивів, це марно витрачало б сотні МБ або навіть кілька ГБ пам'яті, сповільнюючи всю систему.

2.2 Філософія розподілу ресурсів за потребою ​

Дизайнерська філософія Windows — "розподіляй ресурси за потребою, не використовуєш — звільняй":

  • Для більшості користувачів: відкритий термінал = потрібен Linux; закритий термінал = наразі не потрібен;
  • Лише небагатьом користувачам потрібен Linux, що працює 7×24 години безперервно.

Тому WSL застосовує стратегію "запуск за потребою, зупинка під час простою", завдяки чому пам'ять та інші ресурси автоматично повертаються системі, коли вони не потрібні.

2.3 Аналогія: виходячи з кімнати, вимикай світло ​

Автоматичне вимкнення WSL під час простою схоже на вимикання світла при виході з кімнати: економить енергію та є ефективнішим. Але для тих, кому "потрібно, щоб світло горіло постійно", це незручно — саме звідси й виникає потреба в keep-alive.

TIP

Якщо вам потрібен постійно працюючий Linux (наприклад, для розгортання сервісів, виконання запланованих завдань, створення сервера розробки тощо), прочитайте наступний розділ і використайте WSL Dashboard, щоб підтримувати дистрибутив у робочому стані.

3. Запуск Linux із keep-alive за допомогою WSL Dashboard ​

WSL Dashboard пропонує два простих способи, щоб ваш дистрибутив Linux залишався в робочому стані.

Спосіб 1: натисніть кнопку "Запустити" ​

У списку "Встановлені дистрибутиви Linux" у WSL Dashboard:

  1. Знайдіть дистрибутив, який хочете підтримувати в робочому стані;
  2. Натисніть кнопку "Запустити" у рядку цього дистрибутива.

Після натискання дистрибутив одразу прокидається та працює безперервно; доки ви самі його не зупините, він не буде автоматично вимкнений через простій. Цей спосіб підходить для тимчасового keep-alive, коли вам потрібно, щоб Linux працював "зараз".

Спосіб 2: позначте "Автоматично запускати цей дистрибутив при старті Windows." ​

У списку "Встановлені дистрибутиви Linux" у WSL Dashboard:

  1. Натисніть кнопку "Налаштування" у рядку потрібного дистрибутива, щоб відкрити вікно налаштувань;
  2. У вікні позначте "Автоматично запускати цей дистрибутив при старті Windows.";
  3. Збережіть налаштування.

Після позначення дистрибутив буде автоматично запускатися щоразу під час старту/входу в Windows, без жодних ручних дій — "працює одразу після старту". Цей спосіб підходить для сценаріїв, де Linux має бути довгостроково онлайн (наприклад, сервер розробки, постійні сервіси).

TIP

  • Потрібно лише тимчасово → використовуйте Спосіб 1 (натисніть "Запустити");
  • Потрібно довгостроково онлайн → використовуйте Спосіб 2 (позначте "Автоматично запускати цей дистрибутив при старті Windows.").