您的位置:首页 > 运维架构 > Linux

Linux服务注册

2020-06-29 04:26 357 查看

我们都知道systemctl命令,该命令可以查看、启动、停止一些系统服务,比如firewalld服务,而我们自己安装的一些软件,不如tomcat就不能通过systemctl命令启动。为什么呢?进入/usr/lib/systemd/system,会发现都是有一些以xxx.service类型的文件,我们会可以找到有个一firewalld.service,这个文件就是firewalld服务的注册文件。如果我们想把tomcat也注册为一个服务,我们就可以通过systemctl命令来启动tomcat服务,而非必须执行tomcat/bin/startup.sh方式来启动,我们就需要来进行tomcat服务注册。

注册tomcat服务

  1. 配置tomcat环境变量,在/etc/profile文件末尾添加一行信息:export CATALINA_BASE=/usr/local/apps/tomcat8080
vi /etc/profile

  1. 配置tomcat启动参数在tomcat/bin下创建一个setenv.sh文件,在文件中追加如下信息,catalina.sh启动的时候会调用,同时配置Java内存参数(非必须)
CATALINA_PID="$CATALINA_BASE/tomcat8080.pid"
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
  1. 在/usr/lib/systemd/system目录下增加tomcat8080.service,内容如下
[Unit]
Description=tomcat8080
After=network.target

[Service]
Type=forking
Environment="JAVA_HOME=/usr/local/apps/java"
PIDFile=/usr/local/apps/tomcat8080/tomcat8080.pid
ExecStart=/usr/local/apps/tomcat8080/bin/startup.sh start
ExecStop=/usr/local/apps/tomcat8080/bin/shutdown.sh stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target
  1. 服务注册配置文件解释
    4.1[Unit] 表示这是基础信息
    Description 是描述
    After 是在那个服务后面启动,一般是网络服务启动后启动
    4.2[Service] 表示这里是服务信息
    Type 是服务类型
    PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数
    Environment 是jdk的安装目录,这里要配置环境变量,在/etc/profile中的配置在系统服务中不生效。
    ExecStart 是启动服务的命令
    ExecStop 是停止服务的指令
    4.3[Install] 表示这是是安装相关信息
    WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。
  2. 测试

启动

systemctl start tomcat8080.service

查看状态

systemctl status tomcat8080.service

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: