[转]CentOS7利用systemctl添加自定义系统服务

原文:https://www.cnblogs.com/saneri/p/7778756.htmlhtml

CentOS7自定义系统服务java

CentOS7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,须要开机不登录就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下.
CentOS7的每个服务以.service结尾,通常会分为3部分:[Unit]、[Service]和[Install] vim

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description 用于描述服务,After用于描述服务类别
[Service]部分是服务的关键,是服务的一些具体运行参数的设置.
Type=forking是后台运行的形式,
User=users是设置服务运行的用户,
Group=users是设置服务运行的用户组,
PIDFile为存放PID的文件路径,
ExecStart为服务的具体运行命令,
ExecReload为重启命令,
ExecStop为中止命令,
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]部分的启动、重启、中止命令所有要求使用绝对路径,使用相对路径则会报错!
[Install]部分是服务安装的相关设置,可设置为多用户的

 

首先,使用systemctl start  [ 服务名(也是文件名) ] 可测试服务是否能够成功运行,若是不能运行则能够使用systemctl status [ 服务名(也是文件名) ]查看错误信息和其余服务信息,而后根据报错进行修改,直到能够start,若是不放心还能够测试restart和stop命令。tomcat

接着,只要使用systemctl enable xxxxx就能够将所编写的服务添加至开机启动便可。bash

实例:服务用于开机运行tomcat项目:测试

#vim /usr/lib/systemd/system/tomcat.service
 
[Unit]
Description=java tomcat project
After=tomcat.service
  
[Service]
Type=forking
User=users
Group=users
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=
ExecStop=/usr/local/tomcat/bin/shutdown.sh
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target

  添加可执行权限:rest

chmod 754 /usr/lib/systemd/system/tomcat.service

  设置为开机自启动:htm

systemctl enable tomcat.service

  

经常使用指令(以tomcat服务为例):blog

启动某服务
 
systemctl start   tomcat.service
 
中止某服务
 
systemctl stop   tomcat.service
 
重启某服务
 
service tomcat   restart
 
systemctl restart   tomcat.service
 
使某服务自动启动(如tomcat服务)
 
systemctl enable   tomcat.service
 
使某服务不自动启动
 
systemctl disable   tomcat.service
 
检查服务状态
 
systemctl   status tomcat.service (服务详细信息)
 
systemctl   is-active tomcat.service(仅显示是否Active)
 
显示全部已启动的服务
 
systemctl   list-units --type=service

  命令整理:
Systemctl start <单元>当即启动单元
Systemctl stop <单元>当即关闭单元
Systemctl restart <单元>当即重启单元
Systemctl reload <单元>重读单元配置 (相似刷新)
Systemctl status <单元> 输出单元运行状态
Systemctl is-enable <单元> 查看单元是否自启动
Systemctl enable <单元> 设置开机自启
Systemctl disable <单元> 取消开机自启
Systemctl is-active <单元>查看单元是否正在运行ip

 

 

关闭防火墙firewall

Centos 7.x 中取消了iptables, 用firewall取而代之。要关闭防火墙并禁止开机启动服务使用下面的命令:

 systemctl stop firewalld.service

systemctl disable firewalld.service

相关文章
相关标签/搜索