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 ...
随机推荐
- 【CSP模拟】小凯的疑惑(DP)
首先,这道题正解的思路是从subtask2而得来的,所以先讲一下subtask2的做法. 因为保证答案不超过long long,所以直接求最大权独立集即可:dp[u][0]表示u点一定不能取的答案,d ...
- Swagger中paramType
paramType:表示参数放在哪个地方 header-->请求参数的获取:@RequestHeader(代码中接收注解) query-->请求参数的获取:@RequestPa ...
- 2019年8月23日 星期五(韩天峰的swoole)
Swoole:面向生产环境的 PHP 异步网络通信引擎 使 PHP 开发人员可以编写高性能的异步并发 TCP.UDP.Unix Socket.HTTP,WebSocket 服务. Swoole 可以广 ...
- springboot读取配置不存在报错
@Value("${log.regId}")private String regId = "123123"; String regId = env.getPro ...
- PHP7 错误及异常机制
关键词 error 不能在编译期发现的运行期错误,比如试图用 echo 输出一个未赋值的变量,这类问题往往导致程序或逻辑无法继续下去而需要中断: exception 程序执行过程中出现意料之外的情况, ...
- Makoto and a Blackboard CodeForces - 1097D (积性函数dp)
大意: 初始一个数字$n$, 每次操作随机变为$n$的一个因子, 求$k$次操作后的期望值. 设$n$经过$k$次操作后期望为$f_k(n)$. 就有$f_0(n)=n$, $f_k(n)=\frac ...
- ftp服务器上传下载共享文件
1 windows下搭建ftp服务器 https://blog.csdn.net/qq_34610293/article/details/79210539 搭建好之后浏览器输入 ftp://ip就可以 ...
- 基于C# Socket实现多人网络聊天室
首先不多说,最终实现界面如下,可以通过点击启动服务,开启TCP服务器: 开启TCP服务器之后,可以通过点击客户端,打开一个独立的TCP客户端,打开客户端之后,输入正确的IP地址和端口号,可以进行连接服 ...
- 爬取快代理的免费IP并测试
各大免费IP的网站的反爬手段往往是封掉在一定时间内访问过于频繁的IP,因此在爬取的时候需要设定一定的时间间隔,不过说实话,免费代理很多时候基本都不能用,可能一千个下来只有十几个可以用,而且几分钟之后估 ...
- JAVA核心技术--继承(1)
1.继承:向上追溯,对同一批类的抽象,延续和扩展父类的一切信息! 1)关键字:extends 例如,父类是Animal,子类是Dog; eg: public class Dog exte ...