当前位置: 首页 > news >正文

将tomcat以普通用户启动

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

 

转载于:https://www.cnblogs.com/origalom/p/7666897.html

相关文章:

  • java final使用
  • 微信小程序前端坑整理
  • CF441D
  • path--diff
  • 前端基础之html
  • MySQL半同步复制
  • 通过ldap验证svn服务
  • codevs 2620 战壕
  • vue-cli脚手架安装
  • keil 赋值之后再声明变量提示错误error: #268: declaration may not appear after executable statement in block...
  • 正质因数分解
  • 110. Balanced Binary Tree
  • 进程与fork()、wait()、exec函数组
  • Centos_linux系统的区别及实际查看
  • 给Extjs的window弹窗的关闭事件添加验证
  • __proto__ 和 prototype的关系
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • HTTP 简介
  • iOS | NSProxy
  • Laravel Telescope:优雅的应用调试工具
  • Leetcode 27 Remove Element
  • PAT A1092
  • Shadow DOM 内部构造及如何构建独立组件
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue2 SSR 的优化之旅
  • Vue学习第二天
  • 从PHP迁移至Golang - 基础篇
  • 第2章 网络文档
  • 老板让我十分钟上手nx-admin
  • 面试遇到的一些题
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 小程序开发中的那些坑
  • 一起参Ember.js讨论、问答社区。
  • PostgreSQL之连接数修改
  • puppet连载22:define用法
  • 回归生活:清理微信公众号
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #100天计划# 2013年9月29日
  • #pragma once与条件编译
  • (175)FPGA门控时钟技术
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (五)网络优化与超参数选择--九五小庞
  • (转)socket Aio demo
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .java 9 找不到符号_java找不到符号
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net FrameWork简介,数组,枚举
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net语言中的StringBuilder:入门到精通
  • @JsonFormat与@DateTimeFormat注解的使用
  • [100天算法】-x 的平方根(day 61)