Tomcat非root身份运行制作Linux系统服务管理
理论知识怱略,马上开始实战
一、首先准备好tomcat 启动、关闭、重启Shell脚本:
以下Shell脚本主要修改值
tomcatPath:tomcat目录
runUser:以哪个身份运行
此处测试的Shell脚本存放地址如下:
mkdir /usr/local/apache-tomcat-7.0./sbin/
vi /usr/local/apache-tomcat-7.0./sbin/tomcat-server
#复制tomcat-server的代码 chmod +x /usr/local/apache-tomcat-7.0.94/sbin/tomcat-server
#!/bin/bash
#Authtor : suk
#Date :
#Email : @qq.com . /etc/init.d/functions #Result Code
RETVAL= #Tomcat Pid
TomcatPid=null #Tomcat Home
tomcatPath=/usr/local/application/apache-tomcat-7.0. runUser='tomcat' getTomcatPid()
{
TomcatPid=$(ps -ef | grep java |grep tomcat | grep -w $tomcatPath | grep -v 'grep ' | awk '{print $2}') } checkTocamtPid()
{
getTomcatPid
if [ -n "$TomcatPid" ];
then
#run
RETVAL=
else
#no run
RETVAL=
fi
} start()
{
checkTocamtPid
if [ $RETVAL -eq ];
then
getTomcatPid
action "Tomcat Already Running Pid:【$TomcatPid】" /bin/false
exit $RETVAL
else
/bin/sudo su - $runUser $tomcatPath/bin/startup.sh
getTomcatPid
action "Start Tomcat Success Pid:【$TomcatPid】" /bin/true
fi
} restart()
{
checkTocamtPid
if [ $RETVAL -eq ];
then
stop
sleep
fi
start
} stop()
{
checkTocamtPid if [ $RETVAL -eq ];
then
getTomcatPid
/bin/kill - $TomcatPid
action "Stop Tomcat PID:【$TomcatPid】" /bin/true
else
action "Tomcat Status No Running" /bin/false
fi
} #Check Tomcat Status
status()
{
checkTocamtPid
[ $RETVAL -eq ] && echo "Tomcat is Running Pid:【$TomcatPid】" || echo "No Tomcat Running"
} #Check Tomcat Start Logs
logs(){
logsPath=$tomcatPath/logs/catalina.out
if [ ! -f $logsPath ];then
echo "$logsPath Not Eixts"
else
/usr/bin/tail -f $logsPath
exit $RETVAL
fi
} case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
logs)
logs
;;
*)
echo $"Usage: $0 {start|stop|restart|status|logs}"
esac
tomcat-server
二、创建运行用户,这里以用户名:tomcat 为例
useradd tomcat
三、把tomcat目录权授
chown -R tomcat.tomcat /usr/local/apache-tomcat-7.0.
注意:
程序用到的所有目录都需要授权给该用户,否则会报权限不足,导致执行失败,执行命令同上
四、开始编写systemctl启动的配置文件
vi /lib/systemd/system/tomcat.service [Unit]
Description=Tomcat server daemon
Documentation=/data/application/apache-tomcat-8.5.
#注意:一般tomcat服务都是在数据库或redis等启动之后,再运行,确保数据库或redis有制作systemctl,在配置到After,mysql.service redisd.service名字是编写systemctl时的文件名
After=network.target mysql.service redisd.service [Service]
Type=forking
PIDFile=/usr/local/apache-tomcat-7.0./tomcat.pid
ExecStart=/usr/local/apache-tomcat-7.0./sbin/tomcat-server start
ExecStop=/usr/local/apache-tomcat-7.0./sbin/tomcat-server stop
Restart=/usr/local/apache-tomcat-7.0./sbin/tomcat-server restart
PrivateTmp=True [Install]
WantedBy=multi-user.target
5、配置Tomcat Pid生产的位置
注意:
确认Tomcat PID必须 与 /lib/systemd/system/tomcat.service 配置里面的 PIDFile 保持一致
vi /usr/local/apache-tomcat-7.0./bin/catalina.sh
怱略
#
# USE_NOHUP (Optional) If set to the string true the start command will
# use nohup so that the Tomcat process will ignore any hangup
# signals. Default is "false" unless running on HP-UX in which
# case the default is "true"
# ----------------------------------------------------------------------------- CATALINA_PID=/usr/local/apache-tomcat-7.0.94/tomcat.pid # OS specific support. $var _must_ be set to either true or false.
cygwin=false
怱略
6、刷新systemctl配置
#重新加载配置文件
systemctl daemon-reload #服务开启,关闭,重启
systemctl start tomcat.service
systemctl stop tomcat.service
systemctl restart tomcat.service #设置开机自动启动
systemctl enable tomcat.service
注意:
启动完成后,需要检查进程是否运行
ps -ef | grep java
正常启动如下:

Tomcat非root身份运行制作Linux系统服务管理的更多相关文章
- Linux下非root用户运行Tomcat
PS:Linux下使用非root用户运行tomcat的原因 由于项目需求,也由于root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限. 这意味着你的任何一个页面脚本(htm ...
- 【出错记录】Tomcat非root用户启动无法拥有权限读写文件
简单记录下,如有必要,将深入补充: 一.非root用户运行Tomcat及原因 由于项目中,为了安全需要,Tomcat将禁止以root形式启动,原因很简单,举个例子,一旦有人恶意将jsp文件透过某个别的 ...
- ElasticSearch Root身份运行
https://blog.csdn.net/lahand/article/details/78954112 如果以root身份运行将会出现以下问题,这个错误,是因为使用root用户启动elastics ...
- Linux 曝出严重安全漏洞,受限用户亦可提权至 Root 身份运行任意命令!(内附解决方案)
本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...
- EasyHLS直播在Linux非root用户运行时出现无法写文件的问题解决mkdir 0777
今天在Github上收到一个用户反馈的EasyHLS在linux上非root用户调用时,无法写目录的问题:https://github.com/EasyDarwin/EasyHLS/issues/3, ...
- Linux以指定用户非root用户运行程序、进程
方式一: 使用su命令切换用户运行 su 用户名 方式二: useradd -s /sbin/nologin -M test -s /sbin/nologin表示创建一个禁止登陆的用户(比如www ...
- deepin使用root身份运行
https://blog.csdn.net/guanripeng/article/details/79630619
- 以非root身份安装Python的Module或者Package以及pip安装指定路径
因为要远程访问公司的服务器,没有sudo的权限,所以在安装python的一些包的时候就不能安去默认路径了(比如以/usr/local/lib/为prefix的路径). 一般来讲用easy_instal ...
- Linux系统服务管理 服务管理
Linux独立服务管理 启动服务 systemctl start 服务名称.service 设置开机自启动 systemctl enable 服务名称.service 停止开机自启动 systemct ...
随机推荐
- 【经典问题】maximum subset sum of vectors
AtCoder Beginner Contest 139 Task F Engines 题目大意 给定 $n$ 个二维向量,从中选出若干个,使得它们的和的模最大. 分析 这是一个经典问题,还有一种提法 ...
- MyBatis清空数据库表数据
<update id="truncateTable"> truncate table ${tableName} </update> <update i ...
- oa_mvc_easyui_登录完成(2)
1.使用MVC特有的ajax方式:异步表单提交方式 js文件引用:<script src="~/Scripts/jquery.unobtrusive-ajax.min.js" ...
- ubuntu 16.04下ssh访问提示错误
liuyan@ubuntu:/etc/init.d$ sudo apt-get install openssh-server -yReading package lists... DoneBuildi ...
- 机器学习-SVM-核函数
SVM-核函数 在研究了一天的SVM核函数后,我顿悟了一个道理: 研究和使用核函数的人,从一开始的目的就是把data分开而已.高维和映射,都是原来解释操作合理性的,但根本不是进行这一操作的原因 我为什 ...
- Js阻止冒泡,Vue中如何阻止冒泡事件
js解决冒泡:event.stopPropagation() vue解决冒泡: 事件.stop,例如:@click.stop="" ,@mouseover.stop="& ...
- whistle 前端工具之抓包利器
一.业务场景 前端本地开发的场景中,我们需要频繁的改动代码,并需要实时看到效果,并且在一些开发场景中,我们需要将特定的请求代理到特定的IP.本地文件等,所以使用fiddler或whistle等本地.真 ...
- Vue报错:Property or method "XXX" is not defined on the instance but referenced during render. Make sure that this property is reactive...
在Vue中定义方法或者属性时,因为粗心疏忽可以能会报该错误 [Vue warn]: Property or method "search" is not defined on th ...
- java中的Enum在@RestController(@ResponseBody) 注解下返回的表现
参考文档 枚举 public enum CouponType { PLATFORM("平台优惠券"), NEWCOMER("新人专享优惠券"), INVITE( ...
- TP-Link 路由器 如何在现有的环境中改善无线信号传输质量
http://service.tp-link.com.cn/detail_article_346.html