国产加密服务器 将java编译的jar文件rpm打包2,sysytemd管理

继续上一篇

做天做完rpm还是没有解决掉在国产服务器开机启动的问题,今日继续

1、需要增加sysytem  的 项目.serivice 文件

2、修改打包路径下的/root/rpmbuild/SPECS/***.spec  打包配置文件

3、重新打包构建,安装

4、设置开机启动 systemctl enable  项目.serivice

一、创建runyydy.serivice systemd 管理文件

1、创建文件

vim /root/rpmbuild/SOURCES/runyydy.serivice

[Unit]

Description=yiyuduoyi

After=network-online.target

[Service]

Type=simple

WorkingDirectory=/data/yiyuduoyi_sh

ExecStart=/usr/java/jdk1.8.0_261-amd64/bin/java -Xms2048m -Xmx2048m -XX:PermSize=1024M -XX:MaxPermSize=1024M  -jar /data/***/run.jar --server.port=8080 > /data/***/temp.txt &

Restart=on-abort

ExecStop=/data/yiyuduoyi_sh/***stop.sh

[Install]

WantedBy=multi-user.target

保存 :wq!

2、创建  ***stop.sh  用于stop  需要根据个人来配置

vim /root/rpmbuild/SOURCES/***stop.sh

#!/bin/sh

pid=sudo netstat -anp|grep 8080|awk '{print $7}'|awk -F "/" '{print $1}'

echo $pid

if [ -z $pid ];then

echo "***-null 无启动端口8080"

else

echo "***-kill 端口8080"

kill -9 $pid

fi

保存 :wq!

二、修改 /root/rpmbuild/SPECS/***.spec  打包配置文件

#项目名称

Name:runyydy

#项目版本号

Version:1.0

#项目版本号-release号

Release:1%{?dist}

#项目描述

Summary:yiyuduoyi jar 打包 rpm

#项目组名

Group:yiyuduoyi

#License:默认GPL

License:GPL

#来规避掉二进制文件带来的依赖L

AutoReqProv: no

#源文件,需要打包到rpm的几个文件可以列几个,目前三个文件

Source0:***.jar

Source1:***.service

Source2:***stop.sh

#rpm软件包所依赖的软件包名称,可以使用>=或者<=表示大于或者小于某一特定版本。

Requires:      shadow-utils,bash

#rpm软件包构建过程中所依赖的软件包名称,可以使用>=或者<=表示大于或者小于某一特定版本。

BuildRequires:systemd

%{?systemd_requires}

#介绍说明

%description

****服务程序***

#安装操作,建立了两个虚拟目录app_dir,service_dir  %{buildroot}宏定义可以通过 rpm --eval "%{buildroot}" 查看路径

%install

app_dir=%{buildroot}/data/yiyuduoyi_sh

service_dir=%{buildroot}%{_unitdir}

rm -rf %{buildroot}

mkdir -p %{buildroot}

mkdir -p $app_dir

mkdir -p $service_dir

# 目录建立后拷贝需要打包的文件到对应目录 service文件拷贝到系统的/usr/lib/systemd/system 下

cp %{SOURCE0} $app_dir/runyydy.jar

cp %{SOURCE1} $service_dir

cp %{SOURCE2} $app_dir/runyydystop.sh

# 文件属性权限设置  *** 是自己的项目名称

%files

# define default file attributes

%defattr(-,root,root,755)

#表示将dir目录路径下的内容打进rpm软件包里。

%dir %attr(755, root, root) /data/y****h

#控制文件权限

%attr(755, root, root) /data/y****h/***.jar

%attr(755, root, root) /data/y****h/***stop.sh

%attr(775, root, root) /usr/lib/systemd/system/%{name}.service

# rpm软件包安装之后执行的脚本  检测service文件

%post

# ensure Spring Starter service is enabled and running

%systemd_post %{name}.service

%{_bindir}/systemctl enable %{name}.service

%{_bindir}/systemctl start %{name}.service

# 卸载前触发

%preun

%systemd_preun %{name}.service

# 卸载后执行,删除文件目录

%postun 

case "$1" in

0) # This is a package remove  杀死进程,再删除文件

pid=`sudo netstat -anp|grep 8080|awk '{print $7}'|awk -F "/" '{print $1}'`

echo $pid

if [ -z $pid ];then

echo "***-null 无启动端口8080"

else

echo "***-kill 端口8080"

kill -9 $pid

fi

# remove app  folders

rm -rf /data/**

;;

1) # This is a package upgrade

# do nothing

;;

esac

# 如果升级需要重启

%systemd_postun_with_restart %{name}.service

保存 :wq!

三、重新打包构建,安装

1、查看打包的源目录文件

[root@localhost rpmbuild]# ll SOURCES/

总用量 113900

-rw-r--r-- 1 root root 116623778 12月 20 16:38 ***.jar

-rw-r--r-- 1 root root      424 12月 20 17:36 ***.service

-rw-r--r-- 1 root root      208 12月 20 16:38 ***stop.sh

2、重新构建

cd /root/rpmbuild

dos2unix SPECS/***.spec    //对spec 改变文件中\r  为\n

rpmbuild -ba SPECS/***.spec


3、安装

查看生成的rpm包

cd /root/rpmbuild/

查看rpm包内目录:

rpm -qpl RPMS/x86_64/****-1.0-1.el7.centos.x86_64.rpm


rpm -ivh RPMS/x86_64/****-1.0-1.el7.centos.x86_64.rpm

四、设置开机启动 systemctl enable  项目.serivice

1、启动service

systemctl start ***.service  //查看程序端口是否成功

查看状态

systemctl status ***.service


输入命令:netstat -tlnp  查看配置的程序端口是否正常  OK

systemctl stop ***.service

输入命令:netstat -tlnp  查看配置的程序端口是否杀死  OK

提醒:在这里一定要检测 service文件的是否有写错的地方,之前因为一个字母一直不成功折腾很久哇 

2、加入开机启动

输入:

systemctl enable ***.service

重启服务器:

reboot

等待……

输入命令:netstat -tlnp  查看配置的程序端口是否正常  OK

完成!

拷贝文件到国产加密服务器,进行安装,systemctl start ***.service 启动

查看,OK   systemctl enable ***.service  设置开机启动,重启  查看端口程序正常,OK。

(这里又有一个问题,就是在本地写的***.jar文件名不同,无法正常启动,修改service 加密服务器不允许修改,只能到本地修改好后重新打包rpm 再次安装,才OK ,麻烦。大家也要注意啊)


注意事项:

1、rpm本身就是把文件打包到rpm,rpm 安装就是根据spec文件来进行,拷贝文件到相应位置,然后根据spec文件进行命令执行等操作,所以spec文件很重要

2、本人之前使用的是一个sh文件进行jar文件启动,但是写道service中 ExecStart=    /data/***.sh  启动一直报错,这里改为现有的配置直接启动jar命令才可以

3、service设置enable开机启动时,一直报错Failed to execute operation: Invalid argument。发现service文件中

[Install]

WantedBy=multi-user.targe

少了一个字母t  总是无法设置成功,改后,就好了

[Install]

WantedBy=multi-user.target

4、就是要细心

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351