在WSL上安装tomcat 9后,系统无法识别。
由于 systemctl 命令在 WSL 上不起作用,我使用了以下命令:
sudo service tomcat9 start
回归
tomcat9: unrecognized service
我按照2种方式安装,还是出现了同样的问题。
参考资料为:
https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804
https://linuxconfig.org/ubuntu-20-04-tomcat-installation
这个问题有什么线索吗?
这是我的环境:
Windows 10 版本 2004
ubuntu 20.04(WSL)
openjdk版本:“1.8.0_265”
更新:
我在安装了 ubuntu 20.04 的 gcp vm 实例上执行了相同的过程来调查问题,发现该过程在 ubuntu 20.04 上没有问题,而不是在 WSL 上。
所以我假设这个问题源自WSL。
记录我的所有过程,希望有人找到在 WSL-ubuntu 上安装 tomcat 9 的解决方案。
java安装
sudo apt update
sudo apt install openjdk-8-jdk
在/etc/environment中设置JAVA_HOME
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin"
source /etc/environment
tomcat 9 安装
sudo apt install tomcat9 tomcat9-admin
检查8080端口是否开放(正)
ss -ltn
检查服务命令是否有效(正)
sudo service tomcat9 stop
sudo service tomcat9 start
看来tomcat9包坏了。
要在 WSL 上使用 tomcat9,您可以:
这是我修复计算机上的安装所做的操作:
sudo /usr/share/tomcat9/bin/startup.sh
启动 tomcat 并在 /usr/share/tomcat9/logs/catalina.out 中获取日志我通过以下步骤解决了问题:
wsl --shutdown
和 wsl -d Ubuntu genie -s
apt-get remove tomcat9
和apt-get install tomcat9
然后输入
service tomcat9 status
,查看机器中的工作原理。
令人震惊的是,安装tomcat9-admin后我的机器上没有
service tomcat9 status
。但是如果我使用 sudo 创建了 /usr/share/tomcat9/log 目录,那么我可以使用 /usr/share/tomcat9/bin/startup.sh 启动 tomcat9。我还必须在此之前运行一个取消屏蔽命令:
sudo apt install systemctl
sudo systemctl unmask tomcat9
sudo mkdir /usr/share/tomcat9/log
sudo /usr/share/tomcat9/bin/startup.sh
这仍然是非常不规则的。我认为这可能与 WSL 处理端口的方式有关,因为 mariadb 和 apache2 不会遇到相同的问题(开箱即用)。