利用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

After=syslog.target network.target nss-lookup.target

Before=time-sync.target

Wants=time-sync.target

[Service]

Type=oneshot

ExecStart=/usr/libexec/ntpdate-wrapper

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

Unit  描述信息

Description=     #描述信息

After=          #在那个程序之前启动

Before          #在那个程序之后启动

Service 启动信息

Type=     #启动类型。

#Type=oneshot :这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置 RemainAfterExit=yes 使得 systemd 在服务进程退出之后仍然认为服务处于激活状态。

#Type=notify :与 Type=simple 相同,但约定服务会在就绪后向 systemd 发送一个信号。这一通知的实现由 libsystemd-daemon.so 提供。

#Type=dbus :若以此方式启动,当指定的 BusName 出现在DBus系统总线上时,systemd认为服务就绪。

#Type=idle :systemd会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与 Type=simple 类似。

#Type=forking :systemd认为当该服务进程fork,且父进程退出后服务启动成功。对于常规的守护进程(daemon),除非你确定此启动方式无法满足需求,使用此类型启动即可。使用此启动类型应同时指定 PIDFile=,以便 systemd 能够跟踪服务的主进程。

#Type=simple :(默认值) systemd认为该服务将立即启动。服务进程不会 fork 。如果该服务要启动其他服务,不要使用此类型启动,除非该服务是socket 激活型。

RemainAfterExit=yes     #通知systemctl结束

User=

Group=

Restart=               #Restart=always的时候systemctl会不断重启这个脚本,这种适合程序是脚本的。

#Restart=no的时候不会重启,适合程序软件。

ExecStart=  #后面跟程序的绝对路径,如果有启动参数,后面加上,如果程序没有参数不需要添加ExecStop这条语句

ExecStop=    #后面跟程序的绝对路径,如果有停止参数,后面加上

PIDFile=     #加上程序PID文件绝对路径

install 安装信息

WantedBy=          #WantedBy=multi-user.target

时间: 2024-11-01 20:48:19

利用systemctl添加自定义系统服务的相关文章

在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的服务

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

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

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

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

首先写一个ads服务启动脚本 vim /etc/rc.d/init.d/ads #! /bin/sh start(){cd /opt/rojao/adsnohup 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&

在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的服务

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添加自定义系统服务

目录 一.编写Oracle数据库启动/重启/关闭的脚本 1.启动Oracle数据库的shell脚本 2.重启Oracle数据库的shell脚本 3.关闭Oracle数据库的shell脚本 二.编写自定义服务的配置文件 1.Unit部分 2.Service部分 3.Install部分 4.重启行为 三.使用自定义的服务 1.重新加载服务配置文件 2.启动/停止/启重oracle服务 3.把oracle服务设置为开机/关机自启动/停止 4.查看Oracle实例启动/停止的日志 四.版权声明 Cent

CentOS 7.x设置自定义开机启动,添加自定义系统服务

Centos 系统服务脚本目录: /usr/lib/systemd/ 有系统(system)和用户(user)之分, 如需要开机没有登陆情况下就能运行的程序,存在系统服务(system)里,即: /lib/systemd/system/ 反之,用户登录后才能运行的程序,存在用户(user)里 服务以.service结尾. 这边以nginx开机运行为例 1.建立服务文件 [html] view plaincopyprint? vim /lib/systemd/system/nginx.servic