在WSL上安装tomcat 9后,系统无法识别它。
由于systemctl命令在WSL上不起作用,我使用了以下命令:
sudo service tomcat9 start
返回
tomcat9: unrecognized service
我遵循了两种安装方法,但出现了同样的问题。
参考文献有:
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.004上没有问题,而在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,您可以:
- 下载tomcat9并自行安装
- 尝试修复损坏的安装
以下是我为修复计算机上的安装所做的操作:
- 从下载tomcat 9的zip版本https://tomcat.apache.org/download-90.cgi
- 在windows资源管理器中,打开文件夹\wsl$\Ubuntu\usr\share\tomcat9
- 为了修复tomcat,我将zip中所有丢失的文件夹复制到wsl安装中:conf、webapps和work
- 我还必须为日志创建文件夹/usr/share/tomcat9/logs(您可以从linux shell或\wsl$\Ubuntu中的windows资源管理器创建它(
- 然后我可以用
sudo /usr/share/tomcat9/bin/startup.sh
启动tomcat,并在/usr/share/tomcat9/logs/catalina.out中获取日志
我通过以下步骤解决了问题:
- 启用systemd,请参阅WSL 2-启用systemd
- 使用cmd
wsl --shutdown
和wsl -d Ubuntu genie -s
重新启动WSL Ubuntu - 使用外壳
apt-get remove tomcat9
和apt-get install tomcat9
重新安装tomcat9
然后键入service tomcat9 status
,查看机器中的工作方式。
令人震惊的是,在安装tomcat9管理员后,我的机器上没有service tomcat9 status
。但是,如果我使用sudo创建/usr/share/tomcat9/log目录,那么我就可以使用/usr/share/ttomcat9/bin/startup.sh启动tomcat9。在此之前,我还必须运行一个unmask命令:
sudo apt install systemctl
sudo systemctl unmask tomcat9
sudo mkdir /usr/share/tomcat9/log
sudo /usr/share/tomcat9/bin/startup.sh
这仍然是非常不规则的。我认为这可能与WSL如何处理端口有关,因为mariadb和apache2没有遇到相同的问题(开箱即用(。