3 部署服务

1、拷贝文件

在服务器建立一个目录,规划所有服务将运行在/data/service目录下,聊天室可以新建目录charservice

通过ssh连接到服务器,先跳转到根目录,执行

mkdir data
cd data
mkdir service
# 提升目录权限,否则会报Permission denied
chmod 777 service 
cd service

开发机另起一个终端,执行scp命令将ChatService文件拷贝到服务端的/data/service 目录下

 scp /users/用户名/ChatService root@192.168.0.120:/data/service

根据提示输入密码

ChatService                 100% 2104KB   7.2MB/s   00:00

在ssh连接的终端上执行ls命令,查看文件

[root@rocky service]# ls
ChatService

新建chatservice目录,并将ChatService文件移到目录下

[root@rocky service]mkdir chatservice
[root@rocky service]mv ChatService chatservice/
[root@rocky service]cd chatservice
[root@rocky chatservice]ls
ChatService

修改ChatService权限,使其成为可执行文件

再次执行ls命令,可以看到ChatService文件名字变为绿色。

2、执行程序

输入命令执行程序

可以看到服务已经运行,并且监听21100端口。

启动测试客户端,尝试连接,

提示连接被拒绝,这是因为服务端防火墙未开放端口。

3、打开端口

先检查防火墙状态

防火墙firewalld正在运行,查看端口开放状态

显示空行,没有开放自定义端口。

增加端口21100,支持TCP连接

重启防火墙,再查看端口状态,可以看到端口21100已经开放

重启ChatService,再使用测试客户端尝试连接。

尝试请求SessionID,创建和加入房间,都能得到正确响应。

使用cat命令查看服务端日志

服务已经正常运行了。

4、后台运行

现在执行ChatService的方式是在一个终端上直接执行程序,终端关闭后,程序也会终止。

4.1 nohup运行

想在后台执行的话,需要使用nohup命令:

查看进程信息

中止程序可以使用kill命令,杀掉程序的进程号

4.2 创建启动脚本

使用nano命令,如果文件不存在,可以创建一个文件

输入启动命令

编辑完成后按Ctrl+x,提示保存已修改,输入“Y”,提示要保存的文件名,直接回车确认。

修改脚本权限

尝试运行脚本

说明服务正常运行,先kill掉进程2296,下面配置服务。

5、注册服务

我们可以将ChatService注册为服务,程序就可以开机自动启动服务了。

5.1 创建service文件

编辑内容

Unit中After=network.target表示本服务在network服务启动后再运行。

保存退出后执行cat chatsvr.service 可以查看已经修改的文件。

提升可执行权限

5.2 启动服务

daemon-reload: 重新加载某个服务的配置文件,如果新安装了一个服务,归属于 systemctl 管理,要是新服务的服务程序配置文件生效,需重新加载。

发现服务启动失败,报错信息为

查看日志发现是SELinux阻止

修改文件标记,并使其生效

运行服务

查看服务进程

查看服务日志

执行reboot命令,重新启动服务器,查看情况

ChatService服务随服务器开机自行启动。

Last updated