ubuntu 中 docker配置tomcat自启动,logstash非root用户自启动配置
- tomcat开机自启配置
- logstash重启配置
tomcat开机自启配置
默认docker搭建好以后就是跟随系统自动启动的, 如果没有自动启动, 可执行如下命令
sudo systemctl enable docker
sudo systemctl start docker
docker下启动tomcat时, 加入参数--restart always
即可让tomcat在手动重启/意外重启/意外宕机的等情况下, 自动重启
docker run -d -p 8888:8080 --restart always --name='tomcat' my_tomcat
其中my_tomcat是自己生成的镜像, 里面存储着tomcat运行的war包等环境, 具体参考文章
ubuntu下搭建docker 部署tomcat 发布springboot war包 实现过程及问题记录
logstash重启配置
logstash启动需要自己编写启动脚本文件, 然后在系统启动后初始时调用该启动脚本, 即可让logstash随系统一起启动
在logstash/bin下创建脚本startup.sh
,脚本文件如下startup.sh
#!bin/sh
for i in /var/vcap/sys/log/dea_next /var/vcap/sys/log/warden /var/vcap/sys/log/monit /var/vcap/sys/log/dea_logging_agent
do
export SINCEDB_DIR=${i}
done
# 这里配置JAVA_HOME, 需要根据自己的情况配置
# 执行echo $JAVA_HOME可以查看自己的java安装路径
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
# 进入到logstash根目录
cd /usr/local/docker/logstash/
# 删除之前运行的文件, 保证运行时不会被之前错误的进程结束而影响
rm data/.lock
# 启动文件
bin/logstash -f config/logstash-sample.conf
编辑好启动文件之后, 需要在系统初始化时调用这个脚本文件
编辑文件/etc/rc.local
vi /etc/rc.local
在该文本中添加如下命令
su - mycount -c "../logstash/bin/startup.sh"
这里的mycount是当前用户, 也就是我们的非root用户, 后面引号中的是startup.sh的路径
* * * * * * * 注 意 啦 ! * * * * * * *
* * * * * * * 注 意 啦 ! * * * * * * *
* * * * * * * 注 意 啦 ! * * * * * * *
* * * * * * * 敲 黑 板 ! * * * * * * *
* * * * * * * 敲 黑 板 ! * * * * * * *
* * * * * * * 敲 黑 板 ! * * * * * * *
这里编辑完之后保存可能会提示当前文件是只读类型的文件, 也就是说, 没有权限修改, 那么我们需要给这个非root用户赋予权限
执行命令
sudo chmod -R 777 /etc/rc.local
这里一定要设置清楚, 只给rc.local赋予权限就可以了, 不要把整个/etc文件夹下的所有文件都赋权, 这样会导致很多错误, 让你的系统无法正常运行, 不信的可以试一试, 我已经踩过坑了, 重做了系统
最后我们赋权之后, 就可以正常的保存这个rc.local文件了
执行重启命令
sudo reboot
重启之后就可以正常在java接口中查看到logstash已经启动了, 并且正常的发送出数据了
又是没有bug的一天, 美滋滋 , 下班!