Підсистема Windows для Linux, станом на травень 2018 року, досі не підтримує init.d
або systemd
керує сервісом, і я зіткнувся з проблемами в сервісах та кількох варіантах в Інтернеті, але не працюючи оптимально для всіх випадків
Підсистема Windows для Linux, станом на травень 2018 року, досі не підтримує init.d
або systemd
керує сервісом, і я зіткнувся з проблемами в сервісах та кількох варіантах в Інтернеті, але не працюючи оптимально для всіх випадків
Відповіді:
Наступний скрипт bash працює для мене .. Зверніть увагу, що continue
оператор потрібен для пропуску скриптів, які не виходять, і start
аргумент потрібен більшості скриптів служби .. я вважаю
for f in /etc/init.d/*; do sh "$f" start || continue; done ;
Це просто загальний напрямок (саме так я це зробив) - можливо, хтось може вдосконалити ідею.
Щоразу, коли служба LxssManager запускається (перезапускається) , у переглядачі подій є 2 записи -> Журнали Windows -> Безпека
Успіх аудиту ВС 13.01.2019 13:34:52 Аудит безпеки Microsoft Windows. 4672 Успіх спеціального аудиту входу в НД 13.01.2019 13:34:52 Аудит безпеки Microsoft Windows. 4624 Вхід
Якщо ви клацніть правою кнопкою миші на клавіші "Спеціальний вхід" у стовпці категорії завдань, ви можете "Приєднати завдання до цієї події" з наступними діями (використовуючи Планувальник завдань)
Програма / сценарій: C: \ Windows \ System32 \ wsl.exe та з аргументами: /usr/bin/apache.sh (або будь-який інший .sh-файл, який ви створили)
На стороні Linux створіть .sh-файл, щоб запустити службу в Linux (ось так я це зробив):
створити apache.sh і ввести його в / usr / bin /
Мій apache.sh виглядає так:
#!/bin/sh
sudo service apache2 start
Якщо ваш сценарій вимагає автентифікації Linux, ви можете використовувати його
ubuntu config - root за замовчуванням (встановить користувача за замовчуванням як root) - запустіть це з cmd.exe з правами адміністратора.
Докладніше про це https://docs.microsoft.com/en-us/windows/wsl/user-support
Це здається приємним автоматизованим методом безкоштовного гусля (хоча б мені)
Раніше я не бачив справді хороших відповідей на це, тому я розробив наступний сценарій, який використовую на кількох машинах. Це робить такі речі, як apt install apache2 набагато простіше, ніж їх зазвичай автоматично налаштовується. Я додав коментарі, щоб було легше знати, як ним користуватися, і кинув його на github. Також вирішили виправити дратівливу візуальну помилку.
Це передбачає, що у файлі sudoers у вас немає nopasswd, оскільки в іншому випадку ви отримаєте підказку при запуску.
#!/bin/bash
# Add new shortcut under the following directory
# "C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup"
# Make the shortcut here the following is an example, assuming this file is /etc/init.sh
# You can change the 3 to 5 for example if for example you used x11
# C:\Windows\System32\bash.exe -c "/usr/bin/sudo /etc/init.sh 3"
# You will also need to update your sudoers to allow NOPASSWD as otherwise it will prompt you for a password each time.
[[ -z $1 ]] && { echo "Need to specify a run level"; exit 127; }
run_level=$1
[[ -d /etc/rc${run_level}.d/ ]] || { echo "Need to specify a run level"; exit 127; }
for rc_service in /etc/rc${run_level}.d/K*; do
[[ -e "$rc_service" ]] && $rc_service stop
done
for rc_service in /etc/rc${run_level}.d/S*; do
[[ -e "$rc_service" ]] && $rc_service start
done
Я прийму будь-які виправлення помилок або пропозиції тут: https://github.com/masshuku/wsl-init.sh