使用 jsvc 启动tomcat(使用普通用户运行)
使用 jsvc 启动tomcat(使用普通用户运行)
jsvc简介
在生产中,tomcat应该以daemon的模式运行,而且如果需要以普通用户的身份启动tomcat,那么就不能使用1024以下的端口,这是Liunx系统的限制,只有root用户才能使用小于1024的端口。那么该如何将tomcat配置成服务呢?我们通过 jsvc 可以很简单的 封装我们自己的 启动脚本,还可以 随意制定 tomcat 运行用户和组,还可以指定 jvm 的运行参数例如内存控制,语言,字符编码。我们还可以指定 tomcat 启动是的 pidfile 总之我们可以更精细的控制tomcat的运行方式。比原始脚本拥有无法比拟的优势。
好了!吹了这么多,这篇只想操作一下怎么去使用普通用户运行,其他的我还没学!
设置Tomcat目录的使用权限
创建tomcat用户(默认连带也创建tomcat组)
useradd tomcat
将tomcat目录的属主用户设置为tomcat,属组设置为tomcat组
chown -R tomcat:tomcat /usr/local/tomcat/

这时显示的tomcat root权限 其实是指这条软链接是归属root 我们所链接的tomcat目录已经属主为tomcat 并且-R递归传递权限。
对组内用户开放tomcat下所有文件的可读权限,以免启动时报错。如,不能读取sever.xml文件
chmod -R g+r tomcat/
对组内用户开放tomcat下webapps,logs,work,temp目录的可写权限
chmod -R g+w logs/ temp/ webapps/ work/
安装jsvc
上次已经讲过部署Java+Tomcat环境,此篇是上次的后续。
附上前篇文章:https://www.cnblogs.com/cany/p/10823091.html
jsvc是绑定到tomcat二进制发行版,找到源代码包,准备编译成二进制文件。
进入tomcat下面的bin目录 找到commons-daemon-native.tar.gz

解压源代码包
tar -zxvf commons-daemon-native.tar.gz
进入解压的目录,进行编译
cd commons-daemon-1.0.15-native-src/unix
./configure --with-java=$JAVA_HOME

出现以上错误为没有安装gcc 编译环境
yum install gcc-c++ -y
再次运行出现以下内容就可以啦

进行编译
make
编译完成后,会在当前文件夹生成一个jsvc的文件

将它拷贝到tomcat bin目录下
cp jsvc /usr/local/tomcat/bin/
这时我们用daemon.sh 去运行我们的tomcat
./daemon.sh start
其他命令:
./daemon.sh stop
使用 jsvc 启动tomcat(使用普通用户运行)的更多相关文章
- 使用jsvc启动tomcat
1.在/usr/local/apache-tomcat-7.0.68/bin中有commons-daemon-native.tar.gz 压缩包 2.解压commons-daemon-native. ...
- Linux下启动Tomcat启动并显示控制台日志信息
Linux下如何启动Tomcat像Windows启动并显示控制台日志信息一样? Windows下启动tomcat,一般直接运行startup.bat,启动后如下图所示: Linux下直接启动./sta ...
- linux-非root用户运行tomcat
# 前言:为什么要使用非root用户运行tomcat root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限. 这意味着你的任何一个页面脚本(html/js)都具有root权 ...
- Linux下非root用户运行Tomcat
PS:Linux下使用非root用户运行tomcat的原因 由于项目需求,也由于root用户启动tomcat有一个严重的问题,那就是tomcat具有root权限. 这意味着你的任何一个页面脚本(htm ...
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...
- 【出错记录】Tomcat非root用户启动无法拥有权限读写文件
简单记录下,如有必要,将深入补充: 一.非root用户运行Tomcat及原因 由于项目中,为了安全需要,Tomcat将禁止以root形式启动,原因很简单,举个例子,一旦有人恶意将jsp文件透过某个别的 ...
- 将tomcat以普通用户启动
1.为tomcat创建一个专用启动用户 useradd -M -r -d /dev/null -s /sbin/nologin tomcat 2.编译jsvc ① 进入tomcat的bin目录下 ② ...
- 使用非root用户启动tomcat
以下操作均为以root用户运行1.添加tomcat用户组 /usr/sbin/groupadd tomcat 2.添加tomcat用户,并限制登录 /usr/sbin/useradd -s /bin/ ...
- 用普通用户通过sudo进行启动tomcat时报如下异常
用普通用户通过sudo进行启动tomcat时报如下异常 tomcat user 不在 sudoers 文件中.此事将被报告. 这是由于sudo命令使用root用户执行命令.而处于安全性的考虑,一般不允 ...
随机推荐
- IDEA Junit FileNotFoundException: class path resource [spring/spring.xml] cannot be opened because it does not exist
今天打算写一个单元测试,但是已经有写好的单元测试无论怎么弄都提示文件不存在,自己一度以为是启动方式不正确.这里简单记录一下处理过程 1 异常信息: Caused by: org.springframe ...
- Ubuntu16.04 apache2+php7.0+mysql5.7环境搭建
今天配置一下web环境,很常见的apache+php+mysql的网站环境: 步骤一:安装apache sudo apt install apache2 步骤二:安装php7 1.安装PHP7和响应的 ...
- 微信小程序wx.request的简单封装
前言 之前写小程序,每次请求后台时都直接调用原生的API,wx.request,每次都要写url,data,回调函数等,正好前段时间,小程序项目需要添加新内容,趁此机会,做一个封装的请求工具,比较简单 ...
- web-msg-sender的https支持改造
用的是nginx代理转发443到2120端口实现,官方说workman原生支持,没有实现(现象是 访问 htttps://域名:2120/ 超时,不知道是服务器问题还是什么) 后转为用nginx代理转 ...
- qt 设置程序居中
widget *s =new widget; , ); s->show();
- sqlserver 触发器语法
语法:Trigger on an INSERT, UPDATE, or DELETE statement to a table or view (DML Trigger)CREATE TRIGGER ...
- vue-resource在vuecli3中请求headers修改
this.$resource.delete({ user_code: Cookie.get("empid"), date: date, file_name: file_name } ...
- keras Dense 层
文档地址:https://keras.io/layers/core/#dense keras.layers.Dense(units, activation=None, use_bias=True, k ...
- [webpack]解决报错 CleanWebpackPlugin is not a constructor
错误写法 const CleanWebpackPlugin = require("clean-webpack-plugin"); 正确写法: let {CleanWebpackPl ...
- Flutter 中使用Future消除Callback Hell
/先分别定义各个异步任务 Future<String> login(String userName, String pwd){ ... //用户登录 }; Future<String ...