Ubuntu 18.04 на демоне WSL cron не запускается после перезагрузки

У меня Ubuntu 18.04.1 LTS работает под управлением Windows 10 Pro. После каждой перезагрузки демон cron не запускается.

Я могу запустить его вручную с sudo service cron start.

Что я могу настроить или какой системный файл мне нужно изменить, чтобы после перезагрузки запускался демон cron?

1
задан 16 August 2019 в 10:25

1 ответ

Как это описано в статье Starting Linux Background Services on Windows Login, необходимо инициировать команду sudo service cron start из Windows. Можно использовать Windows Task Scheduler с этой целью. Вот шаги от упомянутой статьи с небольшие модификации:

1. Создайте сценарий запуска и сделайте его исполняемым файлом:

echo "service cron start" | sudo tee /usr/local/bin/cronstart.sh
sudo chmod +x /usr/local/bin/cronstart.sh

Таким образом cronstart.sh будет доступно как широкая система команд оболочки.

2. Создайте файл в /etc/sudoers.d/ с целью позволить Ваш $USER выполниться cronstart.sh sudo без пароля. Выполните следующую команду для генерации строки, которая должна быть помещена в sudoers файл:

echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/cronstart.sh"

Скопируйте вывод команды, используйте команду sudo visudo -f /etc/sudoers.d/cronstart и вставьте скопированную строку как содержание недавно созданного файла. Сохраните файл и выход.

3. В рамках Windows перейдите к панели поиска, найдите и запустите Планировщика задач (как администратор, если Ваш текущий счет не является администраторами один).

Теперь, нажмите Task Scheduler Library слева и затем Создайте Задачу … на праве создать новую задачу. Можно использовать следующие параметры для конфигурирования задачи:

  • Вкладка "Общие":

    Назовите задачу чем-либо, как что Вы хотите, WSL service cron start.

    Выбор опция Run, зарегистрирован ли пользователь или нет.

    Mark не хранит пароль и Выполнение с самыми высокими полномочиями.

    В Настраивании для выпадающего выбора Windows 10.

    Если необходимо установить задачу для другого пользователя, нажимают на кнопку Change User or Group....

  • Вкладка Triggers:

    Нажмите New … для добавления нового триггера для этой задачи.

    В Начинании задачи раскрывают выбор At startup.

    В Расширенных настройках можно проверить задачу Задержки на 1 minute.

  • Вкладка Actions:

    Нажмите New … для добавления нового действия для этой задачи.

    Выбор Запускает программу для типа действия и затем входит C:\Windows\System32\wsl.exe как программа для выполнения.

    В Добавляют, что аргументы (дополнительно) устанавливают это: sudo cronstart.sh.

Вот именно. Перезагрузите систему, затем откройте терминал WLS и использование service cron status проверять ли cron is running.


Я сделал некоторые тесты, и к сожалению я нашел, что Windows 10 испытывает некоторые ошибки, и почти невозможно установить такую задачу для учетной записи пользователя неадминистратора при использовании учетной записи Windows вместо локального одна... полная путаница: O

Как обходное решение в этом случае можно создать названный файл cronstart.bat в папке shell:startup с содержанием следующим образом:

C:\Windows\System32\wsl.exe sudo cronstart.sh

То, как использовать VBS вместо bat-файла для достижения того же результата, показывают здесь:

0
ответ дан 7 December 2019 в 19:06

Другие вопросы по тегам:

Похожие вопросы: