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进程了。
  • 相关阅读:
    快速认识ELK中的L
    HBase启动和停止命令
    Kafka 快速起步(作者:杜亦舒)
    Kafka 消息存储及检索(作者:杜亦舒)
    HBase集群搭建
    Kafka消息保证不丢失和重复消费问题
    Kafka文件的存储机制
    Kafka的配置文件详细描述
    kafka常用操作命令
    BZOJ1769 : [Ceoi2009]tri
  • 原文地址:https://www.cnblogs.com/zphqq/p/9264606.html
Copyright © 2011-2022 走看看