rhel7/centos7操作系统守护进程配置
本章节主要介绍在rhel6/centos6和rhel7/centos7系统下使用非root用户配置及使用BFT Agent守护进程,其它BFT服务的守护进程和配置用例可以参考本说明,用例详细介绍了基于自定义上传的JRE和系统JDK两种不同JVM配置环境下守护进程的配置。
注意:完全使用root用户注册和使用守护进程服务的方式不在这里详细说明,用户只需保证介质包及包内的文件属于root用户,再用root用户注册守护进程及启动服务即可,即一切操作皆以root用户执行。
使用单独导入的JRE
在实际项目中,客户生产环境中的服务器安装的JDK环境不一定满足BFT Agent服务的运行要求,因此需要在介质包指定路径下上传满足服务运行要求的JRE包。
准备工作
将
Primeton_BFT_7.5.1_Agent.tar
介质包拷贝至/home/bft/BFT751/
目录说明:可以将此介质包拷贝至任意非root用户目录下,本例以bft用户为例
使用bft用户解压介质包至
Primeton_BFT_7.5.1_Agent
目录[root@localhost BFT751]# su bft [bft@localhost BFT751]$ mkdir Primeton_BFT_7.5.1_Agent [bft@localhost BFT751]$ tar -xvf Primeton_BFT_7.5.1_Agent.tar -C Primeton_BFT_7.5.1_Agent
使用bft用户将JRE包至BFT Agent根目录(本例演示拷贝系统安装的JDK中的JRE,用户可去官网下载或参考本例,从其它已安装的服务器上拷贝)
注:注意确保BFT Agent目录下的所有文件都是属于bft用户和用户组的
[root@localhost ~]# cd /home/bft/BFT751/Primeton_BFT_7.5.1_Agent [root@localhost Primeton_BFT_7.5.1_Agent]# su bft [bft@localhost Primeton_BFT_7.5.1_Agent]$ cp -r /usr/java/jdk1.8.0_172/jre/ ./ [bft@localhost Primeton_BFT_7.5.1_Agent]$ ll 总用量 40 drwxr-xr-x. 11 bft bft 4096 6月 2 22:11 bftagent drwxr-xr-x. 2 bft bft 4096 6月 2 22:11 bftservice drwxr-xr-x. 5 bft bft 4096 6月 2 22:52 jre -rwxr-xr-x. 1 bft bft 5297 6月 2 18:23 LICENSE drwxr-xr-x. 2 bft bft 4096 6月 2 18:24 logs -rwxr-xr-x. 1 bft bft 119 6月 2 18:23 startBFTAgent.cmd -rwxr-xr-x. 1 bft bft 1230 6月 2 18:23 startBFTAgent.sh -rwxr-xr-x. 1 bft bft 33 6月 2 18:23 stopBFTAgent.cmd -rwxr-xr-x. 1 bft bft 1242 6月 2 18:23 stopBFTAgent.sh
以非root账户运行服务
使用bft用户启动BFT Agent服务
[bft@localhost Primeton_BFT_7.5.1_Agent]$ ./startBFTAgent.sh [bft@localhost Primeton_BFT_7.5.1_Agent]$ ps -ef | grep bftagent | grep -v "grep" bft 3449 1 95 09:16 pts/2 00:00:13 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
使用root用户执行脚本注册BFT Agent的守护进程服务
注:确保
./bftservice/autostartreg.sh
脚本的用户和用户组为bft用户[root@localhost Primeton_BFT_7.5.1_Agent]# cd bftservice/ [root@localhost bftservice]# ll 总用量 20 -rwxr-xr-x. 1 bft bft 440 6月 2 18:23 autostartreg.bat -rwxr-xr-x. 1 bft bft 1240 6月 2 18:23 autostartreg_oldlinux.sh -rwxr-xr-x. 1 bft bft 1308 6月 2 18:23 autostartreg.sh -rwxr-xr-x. 1 bft bft 410 6月 2 18:23 installJava.sh -rwxr-xr-x. 1 bft bft 265 6月 2 18:23 unautostartreg.bat [root@localhost bftservice]# ./autostartreg.sh /home/bft/BFT751/Primeton_BFT_7.5.1_Agent install AgentDaemon Created symlink from /etc/systemd/system/multi-user.target.wants/AgentDaemon.service to /usr/lib/systemd/system/AgentDaemon.service. install AgentDaemon success
检查守护进程脚本的启动用户(脚本进程的属主为bft用户表示配置成功)
[root@localhost bftservice]# ps -ef | grep agentDaemon.sh | grep -v "grep" bft 3616 1 0 09:18 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh [root@localhost bftservice]#
验证BFT Agent服务的启动用户(自动重启后的BFT Agent进程的属主为bft用户,则表示守护进程配置完全正确)
手动KILL掉BFT Agent进程
[root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" bft 3449 1 12 09:16 pts/2 00:00:22 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml bft 3616 1 0 09:18 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh [root@localhost bftservice]# kill -9 3449 [root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" bft 3616 1 0 09:18 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh bft 3695 1 84 09:20 ? 00:00:04 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
重启操作系统
[root@localhost Primeton_BFT_7.5.1_Agent]# reboot [root@localhost ~]# [root@localhost ~]# ps -ef | grep bft | grep -v "grep" bft 3067 1 0 10:07 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh bft 3130 1 50 10:07 ? 00:00:19 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
非root账户下以root权限运行服务
使用bft用户将JRE包至BFT Agent根目录(本例演示拷贝系统安装的JDK中的JRE,用户可去官网下载或参考本例,从其它已安装的服务器上拷贝)
注:注意确保BFT Agent目录下的所有文件都是属于bft用户和用户组的
[root@localhost ~]# cd /home/bft/BFT751/Primeton_BFT_7.5.1_Agent [root@localhost Primeton_BFT_7.5.1_Agent]# su bft [bft@localhost Primeton_BFT_7.5.1_Agent]$ cp -r /usr/java/jdk1.8.0_172/jre/ ./ [bft@localhost Primeton_BFT_7.5.1_Agent]$ ll 总用量 40 drwxr-xr-x. 11 bft bft 4096 6月 2 22:11 bftagent drwxr-xr-x. 2 bft bft 4096 6月 2 22:11 bftservice drwxr-xr-x. 5 bft bft 4096 6月 2 22:52 jre -rwxr-xr-x. 1 bft bft 5297 6月 2 18:23 LICENSE drwxr-xr-x. 2 bft bft 4096 6月 2 18:24 logs -rwxr-xr-x. 1 bft bft 119 6月 2 18:23 startBFTAgent.cmd -rwxr-xr-x. 1 bft bft 1230 6月 2 18:23 startBFTAgent.sh -rwxr-xr-x. 1 bft bft 33 6月 2 18:23 stopBFTAgent.cmd -rwxr-xr-x. 1 bft bft 1242 6月 2 18:23 stopBFTAgent.sh
使用root账户修改
./jre/bin/java
的属主和执行权限[root@localhost Primeton_BFT_7.5.1_Agent]# chown root jre/bin/java [root@localhost Primeton_BFT_7.5.1_Agent]# chmod u+s jre/bin/java [root@localhost Primeton_BFT_7.5.1_Agent]# ll jre/bin/ 总用量 456 lrwxrwxrwx. 1 bft bft 8 6月 2 22:52 ControlPanel -> jcontrol -rwsrwxrwx. 1 root bft 7734 6月 2 22:52 java
使用bft用户启动BFT Agent服务
[root@localhost Primeton_BFT_7.5.1_Agent]# su bft [bft@localhost Primeton_BFT_7.5.1_Agent]$ ./startBFTAgent.sh [bft@localhost Primeton_BFT_7.5.1_Agent]$ ps -ef | grep bftagent | grep -v "grep" root 3701 1 91 10:14 pts/0 00:00:05 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
使用root用户执行脚本注册BFT Agent的守护进程服务
注:确保
./bftservice/autostartreg.sh
脚本的用户和用户组为bft用户[root@localhost Primeton_BFT_7.5.1_Agent]# cd bftservice/ [root@localhost bftservice]# ll 总用量 20 -rwxr-xr-x. 1 bft bft 440 6月 2 18:23 autostartreg.bat -rwxr-xr-x. 1 bft bft 1240 6月 2 18:23 autostartreg_oldlinux.sh -rwxr-xr-x. 1 bft bft 1308 6月 2 18:23 autostartreg.sh -rwxr-xr-x. 1 bft bft 410 6月 2 18:23 installJava.sh -rwxr-xr-x. 1 bft bft 265 6月 2 18:23 unautostartreg.bat [root@localhost bftservice]# ./autostartreg.sh /home/bft/BFT751/Primeton_BFT_7.5.1_Agent install AgentDaemon Created symlink from /etc/systemd/system/multi-user.target.wants/AgentDaemon.service to /usr/lib/systemd/system/AgentDaemon.service. install AgentDaemon success
检查守护进程脚本的启动用户(脚本进程的属主为bft用户表示配置成功)
[root@localhost bftservice]# ps -ef | grep agentDaemon.sh | grep -v "grep" bft 3838 1 0 10:16 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh
验证BFT Agent服务的启动用户(自动重启后的BFT Agent进程的属主为root用户,则表示守护进程配置完全正确)
手动KILL掉BFT Agent进程
[root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" root 3701 1 14 10:14 pts/0 00:00:20 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml bft 3838 1 0 10:16 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh [root@localhost bftservice]# kill -9 3701 [root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" bft 3838 1 0 10:16 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh root 4030 1 99 10:20 ? 00:00:03 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
重启操作系统
[root@localhost Primeton_BFT_7.5.1_Agent]# reboot [root@localhost ~]# [root@localhost ~]# ps -ef | grep bft | grep -v "grep" bft 3083 1 0 10:22 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh root 3146 1 45 10:22 ? 00:00:20 /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml [root@localhost ~]#
使用系统JDK
准备工作
将
Primeton_BFT_7.5.1_Agent.tar
介质包拷贝至/home/bft/BFT751/
目录说明:可以将此介质包拷贝至任意非root用户目录下,本例以bft用户为例
使用bft用户解压介质包至
Primeton_BFT_7.5.1_Agent
目录[root@localhost BFT751]# su bft [bft@localhost BFT751]$ mkdir Primeton_BFT_7.5.1_Agent [bft@localhost BFT751]$ tar -xvf Primeton_BFT_7.5.1_Agent.tar -C Primeton_BFT_7.5.1_Agent
以非root账户运行服务
使用bft用户启动BFT Agent服务
[bft@localhost Primeton_BFT_7.5.1_Agent]$ ./startBFTAgent.sh [bft@localhost Primeton_BFT_7.5.1_Agent]$ ps -ef | grep bftagent | grep -v "grep" bft 4508 1 76 15:32 pts/0 00:00:08 /usr/java/jdk1.8.0_201/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
使用root用户执行脚本注册BFT Agent的守护进程服务
注:确保
./bftservice/autostartreg_oldlinux.sh
脚本的用户和用户组为bft用户[root@localhost Primeton_BFT_7.5.1_Agent]# cd bftservice/ [root@localhost bftservice]# ll 总用量 20 -rwxr-xr-x. 1 bft bft 440 6月 2 18:23 autostartreg.bat -rwxr-xr-x. 1 bft bft 1240 6月 2 18:23 autostartreg_oldlinux.sh -rwxr-xr-x. 1 bft bft 1308 6月 2 18:23 autostartreg.sh -rwxr-xr-x. 1 bft bft 410 6月 2 18:23 installJava.sh -rwxr-xr-x. 1 bft bft 265 6月 2 18:23 unautostartreg.bat [root@localhost bftservice]# ./autostartreg.sh /home/bft/BFT751/Primeton_BFT_7.5.1_Agent install AgentDaemon Created symlink from /etc/systemd/system/multi-user.target.wants/AgentDaemon.service to /usr/lib/systemd/system/AgentDaemon.service. install AgentDaemon success
检查守护进程脚本的启动用户(脚本进程的属主为bft用户表示配置成功)
[root@localhost bftservice]# ps -ef | grep agentDaemon.sh | grep -v "grep" bft 4665 1 0 15:34 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh
验证BFT Agent服务的启动用户(自动重启后的BFT Agent进程的属主为bft用户,则表示守护进程配置完全正确)
手动KILL掉BFT Agent进程
[root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" bft 4508 1 12 15:32 pts/0 00:00:24 /usr/java/jdk1.8.0_201/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml bft 4665 1 0 15:34 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh [root@localhost bftservice]# kill -9 4508 [root@localhost bftservice]# ps -ef | grep bft | grep -v "grep" bft 4665 1 0 16:26 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh bft 4649 1 89 16:29 ? 00:00:12 /usr/java/jdk1.8.0_201/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/nexus/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
重启操作系统
[root@localhost Primeton_BFT_7.5.1_Agent]# reboot [root@localhost ~]# [root@localhost ~]# ps -ef | grep bft | grep -v "grep" bft 3344 1 0 16:26 ? 00:00:00 /bin/bash /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/agentDaemon.sh bft 3478 1 24 16:26 ? 00:00:18 /usr/java/jdk1.8.0_201/bin/java -Dlog4j2.formatMsgNoLookups=true -classpath /home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent/enviroment/com.primeton.bft.filetransfer.hotupdate-7.5.1.0.jar -Duser.dir=/home/bft/BFT751/Primeton_BFT_7.5.1_Agent/bftagent com.primeton.bft.filetransfer.LoadMain com.primeton.filetransfer.agent.BFTAgent --logging.config=./config/log4j2.xml
非root账户下以root权限运行服务
系统JDK下%JAVA_HOME%/bin/java
文件的用户和用户组都为root,且执行权限为755,即允许其它用户执行,所以在守护进程为非root用户启动时,BFT的服务也都为非root用户启动。
部署两个Agent实例
# 在执行autostartreg.sh或autostartreg_oldlinux.sh时加上参数
# [root@localhost bftservice]# ./autostartreg.sh "" NewName
# 参数说明:$1为平台类型(uname),$2为守护进程名称
[root@localhost bftservice]# ./autostartreg.sh "" OfficeAgentDaemon
[root@localhost bftservice]# ./autostartreg.sh "" PayAgentDaemon
操作名为 AgentDaemon的守护进程相关命令:
进程状态查看:ps -ef | grep agentDaemon.sh | grep -v "grep"
启动命令:systemctl start AgentDaemon
停止命令:systemctl stop AgentDaemon
删除命令:rm -f /usr/lib/systemd/system/AgentDaemon.service
状态查看:systemctl status AgentDaemon
禁止开机自启动:systemctl disable AgentDaemon
启用开机自启动:systemctl enable AgentDaemon
说明:在 /usr/lib/systemd/system 目录下存在 守护进程名.service,则该守护进程已注册
守护进程说明
守护进程不会重启Agent情况(目录中存在norestart文件)
1:执行stopBFTAgent.sh后停止agent,守护进程不会重新启动agent
2:Agent登录失败情况,守护进程不会重新启动agent
(1)agent连接超过最大连接数
(2)系统中存在同名的Agent节点
3:Agent安装后没有启动过,守护进程不会启动agent
守护进程重启Agent需满足条件
1:没有norestart文件
2:pid文件中pid号进程不存在
3:“ps –ef|grep *”进程查询无结果