1、为tomcat创建一个专用启动用户

  useradd -M -r -d /dev/null -s /sbin/nologin tomcat

2、编译jsvc

  ① 进入tomcat的bin目录下

  ② 解压commons-daemon-native.tar.gz:   tar -xf commons-daemon-native.tar.gz

  ③ 进入解压后的unix目录: cd commons-daemon-1.0.15-native-src/unix/

  ④ 执行buildconf命令: sh support/buildconf.sh

  ⑤ 编译:  ./configure --with-java=/usr/local/java/jdk-9,  --with-java后面的值是jdk的安装目录

  ⑥ 编译: make

  ⑦ 将jsvc文件拷贝到tomcat的bin目录下: cp jsvc /usr/local/tomcat/apache-tomcat-9.0.1/bin/

  ⑧ 移除daemon编译文件:  rm -rf commons-daemon-1.0.15-native-src/

3、配置jsvc启动脚本

  ① 进入tomcat的bin目录下,拷贝daemon.sh到/etc/init.d下: cp daemon.sh /etc/init.d/tomcat

  ② 编辑tomcat: vim /etc/init.d/tomcat

  ③ 在文件头部加上环境变量 

    export JAVA_HOME=/usr/local/java/jdk-9
    export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-9.0.1
    export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.1
    export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.1
    export CATALINA_TMPDIR=/usr/local/tomcat/apache-tomcat-9.0.1/temp

  ④ daemon默认的普通用户的用户名为tomcat,如果不是,则修改相应的用户:将 test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat  这句话最后面的tomcat修改成指定的用户名

  ⑤ 保持退出  :wq

4、启动tomcat

  /etc/ini.d/tomcat start

  注意: 将tomcat的所有者切换成tomcat用户,不然会因为权限不足导致无法启动tomcat(chown -R tomcat:tomcat tomcat目录)

错误解决:

1、执行buildconf命令时,提示

  答: 缺少autoconf命令,直接安装autoconf即可。 yum install autoconf

将tomcat以普通用户启动的更多相关文章

  1. 【出错记录】Tomcat非root用户启动无法拥有权限读写文件

    简单记录下,如有必要,将深入补充: 一.非root用户运行Tomcat及原因 由于项目中,为了安全需要,Tomcat将禁止以root形式启动,原因很简单,举个例子,一旦有人恶意将jsp文件透过某个别的 ...

  2. Tomcat普通用户启动注意事项

    今天项目部署上线,老大跟我建议说不要使用root用户部署,试用普通用户运行.刚开始没想什么,后来部署的时候碰到各种权限问题. 记录一下,以防忘记了. 1.使用普通用户启动失败. 首先不用想就去$TOM ...

  3. 简单使用普通用户启动tomcat

    新建用户tomcat,该用户不能登录 useradd tomcat -s '/sbin/nologin' 将/usr/local/tomcat/bin/startup.sh更名 mv /usr/loc ...

  4. centos7新增用户并授权root权限、非root用户启动tomcat程序

    一.centos7新增用户并授权root权限 cat /etc/redhat-release查看centos版本号 1.禁用root账户登录 vim /etc/ssh/sshd_config 找到这一 ...

  5. JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)

    1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...

  6. tomcat manager 的用户权限配置,及环境变量CATALINA_HOME的错位问题

    因为tomcat的manager是管理其他项目的发布.删除等操作的管理项目,所以需要为其设置登陆用户和密码,以及用户相应的访问权限,配置如下: tomcat-users.xml需要添加如下内容: &l ...

  7. Linux 普通用户启动nginx

    众所周知,apache的80端口为系统保留端口,如果通过其他非root用户启动,会报错如下: ()Permission denied: make_sock: could not bind to add ...

  8. Tomcat源码分析——启动与停止服务

    前言 熟悉Tomcat的工程师们,肯定都知道Tomcat是如何启动与停止的.对于startup.sh.startup.bat.shutdown.sh.shutdown.bat等脚本或者批处理命令,大家 ...

  9. eclipse中项目已经启动,可是tomcat一直显示在启动中

    一.异常描述 1. 在eclipse中启动tomcat,应用已经启动成功,但是tomcat仍然一直处于starting装填 二.分析原因 1. 更换8080端口为9080,启动tomcat,可以完整启 ...

随机推荐

  1. C# AES加密解密

    完整代码: /****************************************************************** * 创建人:HTL * 创建时间:2015-04-1 ...

  2. POJ2762 Going from u to v or from v to u? 强连通+缩点

    题目链接: poj2762 题意: 给出一幅单向图.问这张图是否满足   随意两点ab 都能 从a到达b 或  从b到达a 题解思路: 推断一幅图是否满足弱连通 首先想到的是将图中的 强连通分量(能互 ...

  3. 如何解决Win7将任务栏程序自动分组的困扰

    Win7默认把任务栏程序自动分组,比如多个资源管理器窗口被分到一起,其实这挺让人恼火的,关键弊病是多出一个人工检查的步骤,这在操作繁忙时容易增加人的负担,不能按预定记忆处理. 还好微软也没把蠢事做绝, ...

  4. C# 单元测试几个方法的用法

    单元测试的基本方法是调用被测代码的函数,输入函数的参数值,获取返回结果,然后与预期测试结果进行比较,如果相等则认为测试通过,否则认为测试不通过. 1.Assert类的使用 Assert.Inconcl ...

  5. Android 之Toast

    Toast 是一个 View 视图,快速的为用户显示少量的信息. Toast 在应用程序上浮动显示信息给用户,它永远不会获得焦点,不影响用户的输入等操作,主要用于一些帮助 / 提示. Toast 最常 ...

  6. Inside GDALAllRegister之四: 跳过driver

    这个函数很短小: /** * \brief This method unload undesirable drivers. * * All drivers specified in the space ...

  7. [Oracle] decode 函数及其用法

    http://blog.csdn.net/oscar999/article/details/18399177 前言 DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值 ...

  8. storm0.9.0.1升级安装

    来自:http://blog.csdn.net/liuzhoulong/article/details/21112101 1,下载0.9.0.1 http://storm.incubator.apac ...

  9. Junit和Spring

    @ContextConfiguration 用来指定加载的Spring配置文件的位置,会加载默认配置文件 例如下例会加载:classpath:/com/example/MyTest-context.x ...

  10. Java程序猿学习C++之数组和动态数组

    数组: #include <iostream> using namespace std; //模板函数 template <class T> void dump(T val) ...