2.8 CentOS7利用systemctl添加自定义服务

首先写一个ads服务启动脚本

vim /etc/rc.d/init.d/ads

#! /bin/sh

start(){
cd /opt/rojao/ads
nohup java -jar app/ads.jar --conf conf --name a1 --conf-file conf/ads-http.conf &
echo $! > /var/run/ads.pid
}

stop(){
pid=$(cat /var/run/ads.pid)
kill -9 $pid
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
*)
printf ‘Usage: %s {start|stop|restart}\n‘ "$prog"
exit 1
;;
esac

而对于CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下

每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install]

ads分发

vim /usr/lib/systemd/system/ads.service

[Unit]
Description=adsapi
After=network.target

[Service]
Type=forking
PIDFile=/var/run/ads.pid
ExecStart=/etc/rc.d/init.d/ads start
ExecReload=/etc/rc.d/init.d/ads restart
ExecStop=/etc/rc.d/init.d/ads stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别;

[Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错;

[Install]部分是服务安装的相关设置,可设置为多用户的

服务脚本按照上面编写完成后,以754的权限保存在/usr/lib/systemd/system目录下,这时就可以利用systemctl进行测试了

最后像平常那样启动、停止服务即可:

systemctl start ads 或者systemctl start ads.service 或者service ads start进行启动服务

时间: 2024-11-08 01:30:46

2.8 CentOS7利用systemctl添加自定义服务的相关文章

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

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,需要开机不登陆就能运行的程序,存在系统服务里,即:/usr/lib/systemd/system目录下 每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install],我写的这个服务用于开机运行tomcat项目: [plain] vim /usr/lib/systemd/system/tomcat.service [pla

CentOS7使用systemctl添加自定义服务

一.简介 Centos7开机第一个程序从init完全换成了systemd这种启动方式,同centos 5 6已经是实质差别.systemd是靠管理unit的方式来控制开机服务,开机级别等功能. 在/usr/lib/systemd/system目录下包含了各种unit文件,有service后缀的服务unit,有target后缀的开机级别unit等,这里介绍关于service后缀的文件.因为systemd在开机要想执行自启动,都是通过这些*.service 的unit控制的,服务又分为系统服务(sy

在CentOS 7上利用systemctl添加自定义系统服务

CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率.但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多. 下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl. 前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序. CentOS 7的服务

CentOS 7上利用systemctl添加自定义系统服务(转)

CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率.但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多. 下面我们以利用forever来实现Node.js项目自启动为例,初探CentOS 7的systemctl. 前提:Node.js环境已配置成功,forever包安装成功,有一个能跑的Node.js程序. CentOS 7的服务

CentOS 7上利用systemctl添加自定义系统服务

Centos 7 之 systemctl CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率.但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多. CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里

利用systemctl添加自定义系统服务

systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下 每一个服务以.service结尾,一般会分为3部分:[Unit].[Service]和[Install] [[email protected] system]# cat ntpdate.service [Unit] Description=Set time via NTP A

centos7 中 systemd systemctl管理服务的命令

背景: centos7 和 6的重大改变 对于系统管理员而言,系统的服务管理是一件很日常和很重要的工作,而7在6的基础上有了很大的改变,就连命令都完全不一样了.所以要拥抱变化,学习7是如何进行服务的管理和控制的. system和systemctl的初探 Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器. Systemd是一个系统管理守护进程.工具和库的集合,用于取代System V初始进程.Systemd的功能是用于集中管理和配置类UNIX系统. 在Linu

Linux - 利用systemctl命令管理服务

systemctl命令是系统服务管理器指令,融合了service和chkconfig的功能,可以查看和设置服务. 这里以docker服务为例. 利用systemctl命令管理 显示服务状态:systemctl status docker.service 列出服务层级和依赖关系:systemctl list-dependencies docker.service 启动服务:systemctl start docker.service 关闭服务:systemctl stop docker.servi

Centos7 自定义systemctl服务脚本

序言篇: 之前工作环境一直使用Centos6版本,脚本一直在使用/etc/init.d/xxx:系统升级到Cento7后,虽然之前的启动脚本也可以使用,但一直没有使用systemctl 的自定义脚本. 本篇文章用于总结下,具体的使用方式.Centos7 开机第一程序从init完全换成了systemd的启动方式,而systemd依靠unit的方式来控制开机服务,开机级别等功能. 应用篇: Centos7的服务systemctl 脚本一般存放在:/usr/lib/systemd , 目录下又有use