当我在其中创建一个启动脚本/etc/init.d并执行export一个变量时,这个变量是否持续存在并且对启动的进程“可见”?
具体来说,我有以下脚本在 init.d 中启动 tomcat,我手动启动start:
#!/bin/bash
RETVAL=$?
export JRE_HOME=/home/jre
export PATH=/home/jre/bin/:${PATH}
export CATALINA_HOME=/home/apache-tomcat-7.0.25
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su root $CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su root $CATALINA_HOME/bin/shutdown.sh
fi
;;
restart)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
/bin/su root $CATALINA_HOME/bin/shutdown.sh
fi
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
/bin/su root $CATALINA_HOME/bin/startup.sh
fi
;; …Run Code Online (Sandbox Code Playgroud) 我想在 Tomcat 7 的本地安装上使用状态管理器,但它要求输入密码,我不记得它是什么。如何在不重新安装的情况下重置它?
我需要这样做,以便 Tomcat 可以利用一些 Active Directory 内容,并且需要进行大量搜索才能对所有琐碎的部分进行排序。希望如果我在这里回答我自己的问题,它会为其他人省去一些麻烦。
正如您在下面看到的,root用户不能删除myapp目录,但可以写入和删除该目录中的文件。文件系统是ext4。这是文件系统问题吗?你有什么想法吗?
root@vm4923:/opt/tomcat/webapps# ls -l | grep myapp
drwxr-xr-x 2 root root 4096 Feb 17 14:30 myapp
-rw-r--r-- 1 root root 17544487 Dec 18 12:59 myapp.war
root@vm4923:/opt/tomcat/webapps# rm -rf myapp
rm: cannot remove 'myapp': Permission denied
root@vm4923:/opt/tomcat/webapps# sudo rm -rf myapp
rm: cannot remove 'myapp': Permission denied
root@vm4923:/opt/tomcat/webapps# ls -l myapp/
total 0
root@vm4923:/opt/tomcat/webapps# echo "jsdkfjslkdj" > myapp/testfile
root@vm4923:/opt/tomcat/webapps# ls -l myapp/
total 4
-rw-r--r-- 1 root root 12 Feb 17 14:38 testfile
root@vm4923:/opt/tomcat/webapps# ls …Run Code Online (Sandbox Code Playgroud) 我安装了Tomcat 8.5,我可以手动成功启动它,例如:
su tomcat startup.sh
Run Code Online (Sandbox Code Playgroud)
工作正常,tomcat 能够在端口 8080 上提供服务。
我需要自动启动,所以我创建了文件/etc/systemd/system/tomcat-prod.service:
[Unit]
Description=Tomcat 8.5 servlet container - Production
After=network.target
[Service]
Type=forking
ExecStart=/opt/appservers/production/apache-tomcat-8.5.37/bin/startup.sh
ExecStop=/opt/appservers/production/apache-tomcat-8.5.37/bin/shutdown.sh
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
该文件是故意裸露的,我所有的环境变量都在 setenv.sh 中。我尝试使用以下方法运行它:
# systemctl daemon-reload
# systemctl start tomcat-prod
Run Code Online (Sandbox Code Playgroud)
由于上述原因,Tomcat 在启动后立即退出。我在任何地方都没有得到任何解释原因的日志。Tomcat 在启动时创建一个空的 catalina.out 文件,并且 systemctl status tomcat-prod 仅提供以下内容:
tomcat-prod.service - Tomcat 8.5 servlet 容器 - 生产加载:已加载(/etc/systemd/system/tomcat-prod.service;启用;供应商预设:禁用)活动:自 2019 年星期五以来失败(结果:退出代码)- 01-04 08:08:27 UTC;3s前进程:3583 ExecStop=/opt/appservers/production/apache-tomcat-8.5.37/shutdown.sh (code=exited, status=203/EXEC) 进程:3569 ExecStart=/opt/appservers/production/apache- tomcat-8.5.37/bin/startup.sh (code=exited, status=0/SUCCESS) Main PID: 3581 (code=exited, status=0/SUCCESS)
Jan 04 08:08:27 *.net startup.sh[3569]:启动期间发现现有 PID 文件。Jan 04 08:08:27 …
下面是我在 linux 中的某些目录(来自 tomcat/common/lib 目录)上运行“ls”命令时看到的示例输出。
但是我不清楚为什么有些文件名出现在 [方括号] 中
如果有人能为我澄清这一点,将不胜感激!
-rw-r--r-- 1 root root 1038825 Aug 30 2006 [ant].jar
-rw-r--r-- 1 root root 566376 Apr 1 2008 [commons-collections].jar
-rw-r--r-- 1 root root 107392 Aug 18 2006 [commons-dbcp].jar
-rw-r--r-- 1 root root 114374 Aug 17 2006 [commons-el].jar
-rw-r--r-- 1 root root 114374 Aug 17 2006 commons-el.jar
-rw-r--r-- 1 root root 25913 Aug 10 2006 [commons-logging-api].jar
-rw-r--r-- 1 root root 112331 Jun 21 2007 commons-modeler.jar
-rw-r--r-- 1 root root 59695 Sep 26 2006 …Run Code Online (Sandbox Code Playgroud)