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 ...
随机推荐
- json字符串转成 json对象 json对象转换成java对象
import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject; 依赖包 <dependency> ...
- aws ec2挂载 s3
配置s3 挂载 aws ec2 安装依赖包:yum install -y automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-de ...
- 【新功能前瞻】SpreadJS 纯前端表格控件V12.2:打印增强、拖拽填充等六大特性
新版本来袭:葡萄城 SpreadJS 纯前端表格控件的全新版本 V12.2 将于8月正式发布! 作为一款备受华为.招商银行.中国平安.苏宁易购等行业专家和前端开发者认可的纯 JavaScript 电子 ...
- mybatis 基础(二) xml文件中的其他知识点
mybatis xml文件中一些标签的使用 此标签主要用作 配置 "别名" 如果实体类与数据库中字段名在不区分大小写的情况下相同的话, 那就不需要配置resultMap,因为mys ...
- Java 条件语句 if else
一个 if 语句包含一个布尔表达式和一条或多条语句. 语法 if 语句的语法如下: if(布尔表达式) { //如果布尔表达式为true将执行的语句 } 如果布尔表达式的值为 true,则执行 if ...
- cmd_操作MySQL数据库
建议用 TXT 文档来写代码 然后粘贴至cmd命令直接运行创建students库,表名为student,表包含以下字段: id(主键) name(姓名) age(年龄) sex(性别) sc(综合积分 ...
- 基于VS搭建OpenCV环境
OpenCV OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库.OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行, ...
- uboot 主Makefile 分析。
本文以uboot_1.1.6 对应的CPU是S3C2440 为例 uboot_1.1.6 根目录下的主Makefile开头: VERSION = PATCHLEVEL = SUBLEVEL = EXT ...
- leetcode题库
leetcode题库 #题名题解通过率难度出现频率 1 两数之和 46.5%简单2 两数相加 35.5%中等3 无重复字符的最长子串 31.1%中等4 寻找两个有序数组的中位 ...
- [转载]java匿名对象
来源:https://blog.csdn.net/qiaoquan3/article/details/53300248 匿名对象:没有名字的对象:new Car(); //匿名对象其实就是定义对象的 ...