适用于 Linux 的 Windows 子系统自动加载 Apache2 和 MySql

适用于 Linux 的 Windows 子系统自动加载 Apache2 和 MySql

我已经在 Windows 中激活了开发者平台,并通过 Windows Store 安装了 Ubuntu,效果非常好!我唯一需要做的就是当我“激活”Ubuntu Apache2 时,MySql 不会自动启动。

在这个平台下有没有简单的方法可以实现这一点?当我打开 Bash 时,我只能手动启动服务,但最好是自动启动。我试过使用 cron 作业,但服务从未启动,也许我的语法错误?

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot . $HOME/.profile; /usr/sbin/sshd -D
@reboot . $HOME/.profile; service mysql start
@reboot . $HOME/.profile; service apache2 start

答案1

找到了!!!!!虽然不优雅。

无需循环或休眠,只需在 shell 脚本末尾添加“bash”即可。以下是我为 apache 和 mysql 编写的启动时运行的脚本。

VBS 文件(启动时运行) Win + r shell:startup createautostart.vbs

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run "C:\Windows\System32\bash.exe -c ~/autostart.sh",0
Set WshShell = Nothing

autostart.sh文件(只需将其放在您的主文件夹中即可chmod +x runnable

#!/bin/bash
sudo service mysql start
sudo service apache2 start
bash

并添加到/etc/sudoers(附加到文件末尾)

# Allow apache2 and mysql to start without a sudo password
%sudo   ALL=(ALL) NOPASSWD: /usr/sbin/service apache2 *
%sudo   ALL=(ALL) NOPASSWD: /usr/sbin/service mysql *

如果我需要终止所有进程,我可以在任务管理器中找到 bash 进程并将其终止。

信用:https://github.com/mstrelan

答案2

成立本文它使用类似的方法EODCraft的解决方案。但是,它不使用 VB 脚本,而是使用 Windows“任务计划程序”程序在登录时运行 shell 脚本。

相关内容