1

Подсистема Windows для Linux, по состоянию на май 2018 года, по-прежнему не поддерживает init.d или управление службами systemd , и я столкнулся с проблемами со службами и несколькими опциями в сети, при этом оптимальная работа во всех случаях

3 ответа3

1

Следующий скрипт bash работает для меня .. Обратите внимание, что оператор continue требуется для пропуска сценариев, которые не работают, а аргумент start необходим большинству служебных сценариев. Я считаю,

for f in /etc/init.d/*; do sh "$f" start || continue; done ;
0

Это всего лишь общее направление (это то, как я это сделал) - может быть, кто-то может улучшить идею.

Всякий раз, когда служба LxssManager запускается (перезапускается) , в окне просмотра событий появляются 2 записи -> Журналы Windows -> Безопасность.

Успех аудита Вс 13.01.2019 13:34:52 Аудит безопасности Microsoft Windows. 4672 Special Logon Audit Success Вс. 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 --default-user root (установит пользователя по умолчанию как root) - запустите его из cmd.exe с правами администратора.

Подробнее об этом https://docs.microsoft.com/en-us/windows/wsl/user-support

Это похоже на хороший автоматизированный метод без суеты (по крайней мере для меня)

-1

В прошлом я не видел по-настоящему хороших ответов на этот вопрос, поэтому я разработал следующий скрипт, который я использую на нескольких машинах. Это значительно упрощает установку apt apache2, так как тогда он автоматически настраивается. Я добавил комментарии, чтобы было проще узнать, как их использовать, и выкинул их на github. Также решил исправить надоедливую визуальную ошибку.

Это предполагает, что в вашем файле sudoers есть nopasswd, иначе вы получите приглашение при запуске.

#!/bin/bash

# Add new shortcut under the following directory
# "C:\Users\%USERAME%\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"

[[ -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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .