如何在Windows WSL上运行init.d脚本?


1

Windows子系统Linux版,截至2018年5月仍然不支持 init.d 要么 systemd 服务管理,我遇到了服务问题和在线的几个选项,并没有针对所有情况进行最佳工作


您有无法为他们创建Windows服务的原因吗?
Ignacio Vazquez-Abrams

@ IgnacioVazquez-Abrams你能解释一下它是如何工作的吗?
Olubodun Agbalaya

至于Windows上的服务如何工作?
Ignacio Vazquez-Abrams

至于如何创建服务以从Windows @ IgnacioVazquez-Abrams运行Linux服务/启动脚本
Olubodun Agbalaya

Answers:


1

以下bash脚本适合我..注意 continue 需要运算符来跳过失败的脚本,以及 start 大多数服务脚本需要参数..我相信

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

0

这只是一个大方向(我是这样做的) - 也许有人可以改进这个想法。

每当 LxssManager服务启动(重启) 事件查看器中有2个条目 - > Windows日志 - >安全

审核成功Sun 13.01.2019 13:34:52 Microsoft Windows安全审核。 4672特别登录 审核成功Sun 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

这似乎是一个很好的自动化无忧方法(至少对我而言)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.