zoukankan      html  css  js  c++  java
  • systemctl启动tomcat后,jps看不到进程

    centos7 写了tomcat的启动脚本,脚本从网上copy的。

    [Unit]
    Description=tomcat-1
    After=syslog.target network.target remote-fs.target nss-lookup.target

    [Service]
    Type=forking
    Environment='JAVA_HOME=/usr/local/java/jdk1.8.0_151/'
    WorkingDirectory=/usr/local/tomcat-1/webapps

    ExecStart=/usr/local/tomcat-1/bin/startup.sh
    ExecStop=/usr/local/tomcat-1/bin/shutdown.sh
    ExecReload=/bin/kill -s HUP $MAINPID

    PrivateTmp=True

    User=dev

    Group=dev

    [Install]
    WantedBy=multi-user.target

    虽然可以正常启动关停tomcat,但用jps命令根本看不到这个tomcat进程。

    网上一查说是catalina.sh没有把tmp指定到/tmp目录,但我改了之后还是看不到。

    最终一番排查发现网上copy的脚本里有如下这一句,去掉再重启,jps就可以看到tomcat进程了。

    PrivateTmp=true

    这是因为tomcat启动后会把启动后jdk相关信息写在/tmp/hsperfdata_root目录下,jps就去/tmp目录下打开这个文件,并把信息展现给用户,但/tmp这个目录权限是777,任何人都可以查看,centos7认为这样不安全,容易泄露信息,于是官方启动脚本里就有
    PrivateTmp=true这么一句,这样一来tomcat启动后,就不会把相关信息写入/tmp目录里,也就造成jps无法看到tomcat进程了。
  • 相关阅读:
    CSS3 动画-- 鼠标移上去,div 会旋转、放大、移动
    jquery 微信端 点击物理返回按钮,弹出提示框
    H5 canvas pc 端米字格 写字板
    【三剑客】awk函数
    【三剑客】awk运算符
    【三剑客】awk命令2
    【三剑客】awk命令
    磁盘
    用户管理
    定时任务Crond
  • 原文地址:https://www.cnblogs.com/zphqq/p/9264606.html
Copyright © 2011-2022 走看看