Рабочее место 1С на Linux через WSL. Часть 2 - Автоматизация запуска служб в WSL и переход на systemd | infolimp.ru

Рабочее место 1С на Linux через WSL. Часть 2 - Автоматизация запуска служб в WSL и переход на systemd

6 сентября 2026 · infolimp.ru

В первой лабораторной работе мы успешно развернули рабочее место программиста 1С на Linux внутри подсистемы WSL. Однако у текущей конфигурации есть существенное неудобство: при каждом перезапуске Windows или перезапуске WSL-окружения нам приходится вручную запускать службы PostgreSQL и сервера 1С. В этой статье мы подробно разберем, почему стандартные линуксовые механизмы автозапуска не работают в WSL "из коробки", как настроить беспарольный запуск служб и переложить задачу их автоматического старта на планировщик Windows.

Теоретическая часть

### Ограничение WSL: отсутствие systemd по умолчанию В большинстве современных дистрибутивов Linux (включая Ubuntu) в качестве системы инициализации используется systemd. Для автозапуска служб администраторы привыкли использовать команду:

sudo systemctl enable postgresql

Однако в классическом окружении WSL при попытке выполнить любую команду systemctl вы неизбежно столкнетесь с ошибкой: System has not been booted with systemd as init system (PID 1). Can't operate. Почему это происходит? Подсистема WSL запускает Linux-окружение в облегченном контейнере, где процесс с идентификатором PID 1 - это не стандартный инициализатор systemd, а специальный инициализирующий процесс WSL (init). Без systemd в качестве PID 1 утилита systemctl не может управлять службами. ### SysVinit (service) vs Systemd (systemctl) Поскольку systemctl не работает, в WSL для ручного управления службами приходится использовать более старую утилиту service (подсистема инициализации SysVinit):

sudo service postgresql start
sudo service srv1cv83 start

Хотя для WSL на начальном этапе этого достаточно, опытные разработчики и администраторы в комментариях отмечают, что systemd гораздо более функциональна, так как содержит мощные механизмы логирования сетевой и системной активности, а также предоставляет гибкие средства для фонового мониторинга кластера. ### Архитектура автоматизации в WSL Так как полноценного демона инициализации в WSL по умолчанию нет, службы не могут стартовать сами при инициализации Linux. Нам нужно решить две задачи:

  1. Разрешить беспарольный запуск служб: Утилита service требует прав суперпользователя (sudo), а значит - интерактивного ввода пароля. Для автоматизации нам нужно разрешить конкретному пользователю выполнять запуск и остановку СУБД и сервера 1С без ввода пароля.
  2. Связать старт с загрузкой хоста: Мы настроим Планировщик задач Windows, который при запуске операционной системы будет обращаться к WSL и давать команду на старт необходимых служб.

Пошаговая инструкция

### Шаг 1. Настройка беспарольного запуска служб в Linux Для редактирования конфигурационного файла sudoers (который управляет правами sudo) в Linux используется специальная утилита visudo. Она проверяет синтаксис файла перед сохранением, предотвращая случайную блокировку системы.

  1. Запустите терминал Ubuntu в ConEmu.
  2. Выполните команду редактирования:
   sudo visudo
  1. Прокрутите файл в самый конец и добавьте строки, разрешающие вашему пользователю (в оригинальной статье использовался пользователь pen) запускать службы без ввода пароля:
   pen ALL=(ALL) NOPASSWD: /usr/sbin/service postgresql *
   pen ALL=(ALL) NOPASSWD: /usr/sbin/service srv1cv83 *

Примечание: Символ на конце указывает, что беспарольный режим распространяется на любые параметры команды service postgresql и service srv1cv83 (start, stop, status, restart).*

  1. Если visudo использует редактор nano: для сохранения нажмите Ctrl + O, затем Enter. Для выхода нажмите Ctrl + X.
  2. Проверьте работоспособность настройки. Перезапустите службы. Теперь система не должна запрашивать пароль:
   sudo service postgresql stop
   sudo service postgresql start

### Шаг 2. Настройка Планировщика задач Windows Теперь настроим запуск этих команд со стороны Windows при старте компьютера.

  1. В Windows нажмите клавиши Win + R, введите taskschd.msc и нажмите Enter, чтобы открыть Планировщик задач.
  2. В правой панели выберите «Создать задачу...» (Create Task).
  3. На вкладке «Общие» (General):
  1. На вкладке «Триггеры» (Triggers) нажмите «Создать...» (New):
  1. На вкладке «Действия» (Actions) нажмите «Создать...» (New):
  1. На вкладке «Условия» (Conditions):
  1. Нажмите OK и введите пароль вашей учетной записи Windows для подтверждения создания задачи.

Практическое задание

Цель работы: Избавиться от необходимости ручного ввода команд для старта окружения 1С и PostgreSQL при каждом запуске компьютера. Задание:

   wsl -u pen top -b -n 1 | grep -E 'postgres|ragent'

В выводе вы должны увидеть стабильно работающие фоновые процессы postgres и ragent. Это означает, что ваше окружение полностью готово к работе в фоновом режиме сразу после старта Windows.

Проверьте себя

  1. Какую ошибку возвращает утилита systemctl при попытке управления службами в стандартном окружении WSL? Ответ: System has not been booted with systemd as init system (PID 1). Can't operate.. Это связано с тем, что WSL инициализирует систему через собственный легковесный init, а не полноценный systemd.
  2. Какая утилита используется в WSL в качестве альтернативы systemctl для ручного управления службами? Ответ: Утилита service (подсистема инициализации SysVinit).
  3. В чем состоят главные преимущества перехода на систему инициализации systemd, отмечаемые специалистами в комментариях? Ответ: Systemd значительно более функциональна, предоставляет встроенные механизмы логирования сетевой/системной активности и позволяет гибко мониторить состояние компонентов кластера.
  4. Зачем при настройке автозапуска служб через планировщик Windows требуется редактировать файл /etc/sudoers в Linux? Ответ: По умолчанию запуск служб через service требует прав суперпользователя (sudo), что вызывает интерактивный запрос пароля. Редактирование sudoers с флагом NOPASSWD позволяет планировщику Windows выполнять команды старта служб полностью в фоновом автоматическом режиме без ожидания ввода пароля.
  5. Каким образом подсистема WSL демонстрирует интеграцию ресурсов Windows и Linux при запущенных службах сервера 1С и СУБД? Ответ: Все запущенные в WSL процессы (такие как postgres и ragent) напрямую видны в стандартном диспетчере задач Windows, так как WSL является интегрированным программным слоем ОС Windows, делящим с ней ресурсы процессора, памяти и сети.
Расширение «НОПик» для 1С — встраиваемый коннектор к внешнему AI с интеллектуальным поиском по базе. Задавайте вопросы обычными словами - AI сам найдёт нужное. 45 дней бесплатно.

Попробовать НОПик →
Знаете ответ на такие вопросы не хуже автора статьи? Пройдите бесплатную анонимную проверку уровня на infolimp.ru - 3 практических задачи, 15 минут, публичный токен-профиль, который можно показать работодателю или заказчику. Без регистрации по почте.

Проверить свой уровень бесплатно →