2016-08-24 4 views
0

Как видно из названия уже резюмирует:Windows Linux Subsystem: запустить Bash Приложение как услуга

Как я могу начать Баш-скрипт автоматически, при запуске компьютера - в идеале без необходимости входа в к окнам - с помощью Подсистема Microsoft для Linux Bash.

+0

Bash - это просто исполняемый файл, но вам не нужно ничего делать, чтобы его запустить? [nssm] (http://nssm.cc/) должен работать. Или вы можете использовать srvany от Microsoft. Возможно, есть и другие сторонние решения. –

+0

нормально, как это работает? У меня есть скрипт, расположенный в '/ mnt/c/Users//repos/server/start.sh' внутри этого скрипта, я делаю' cd/mnt/c/Users//repos/server; echo "Started"> somefile.txt; python myserver.py' Сервер открывает порт tcp 8080 для http. брандмауэр Windows отключен. Я не получаю никакого коннекта и никакого файла 'somefile.txt' --- Я также попытался использовать nssm и с планировщиком задач Windows – Tobi

+0

* Теоретически, * если я понимаю, как все это работает, если команда' bash.exe' работает в командной строке Windows, он также должен работать при запуске из службы. Очевидно, вы не можете просто вызвать скрипт bash напрямую, вам нужно будет вызвать 'bash.exe' с соответствующими параметрами командной строки. Вероятно, лучшим способом устранения неполадок было бы использовать 'psexec' (доступный с веб-сайта MS) для запуска вашей командной строки, таким образом вы увидите сообщение об ошибке (если оно есть). –

ответ

4

В настоящий момент это не поддерживается, так как служба диспетчера сеансов WSL закроется после закрытия последнего экземпляра оболочки bash.exe. Есть несколько вариантов, но абсолютным простейшим на данный момент является использование run utility от разработчика Xming и просто добавление ярлыка в вашу папку автозагрузки (в меню «Пуск») с указанием

run.exe bash.exe -c "/home/user/daemoninit.sh ; /bin/bash". К сожалению, если для инициализации вашего демона требуется root-доступ, например, что-то вроде sshd, вам нужно будет добавить исключение в sudoers, что позволит кому-либо запустить демон с привилегиями root.

Кроме того, возникают проблемы с его запуском как подлинной системной службы Windows, поскольку каждая установка lxss является специфичной для пользователя. Некоторым людям удалось запустить его при запуске системы, но он запускается в отдельном сеансе Windows для этого пользователя и делает так, что вы не можете запустить bash.exe в текущем сеансе пользователя.

+0

Ну, неспособность открыть другое окно bash звучит не так уж плохо, если вы можете использовать шпатлевку в ssh, и вы закончили, я думаю –