EOD*_*aff 1 mysql bash apache2 16.04 windows-subsystem-for-linux
我已经在 Windows 中激活了开发者平台并安装了 Ubuntu VIA Windows Store,效果非常好!我唯一需要的是当我“激活”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
Run Code Online (Sandbox Code Playgroud)
找到了!!!!!虽然不优雅。
只需在 shell 脚本的末尾添加“bash”,而不是循环或休眠。这是我在启动时运行的 apache 和 mysql 脚本。
VBS 文件(在启动时运行) Win + r shell:startup create autostart.vbs
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "C:\Windows\System32\bash.exe -c ~/autostart.sh",0
Set WshShell = Nothing
Run Code Online (Sandbox Code Playgroud)
autostart.sh
文件(只需在您的主文件夹中制作它,chmod +x runnable
)
#!/bin/bash
sudo service mysql start
sudo service apache2 start
bash
Run Code Online (Sandbox Code Playgroud)
并在/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 *
Run Code Online (Sandbox Code Playgroud)
如果我需要全部终止,我可以在任务管理器中找到 bash 进程并终止它。
信用:https : //github.com/mstrelan