如何让程序在linux服务器下一直运行(关闭远程连接后仍然继续运行)
一、为什么要使程序在后台执行
最近刚刚入手在做一个远程通信的项目,利用套接字实现长连接通信。那么问题来了,我的服务端程序怎么才能一直在服务器上运行以达到随时监测用户请求的目的呢?查了几篇博客,解决了,记一下笔记。程序在后台跑有以下2个好处:
1:我们远程连接的之一端并不影响服务器服务端程序的运行,也就可以达到服务端程序一直运行的目的,好在用户发送请求时及时处理用户需求。
2:让程序在后台跑后,不会占据终端,我们可以用终端做别的事情。
二、怎么样使程序在后台执行
方法有很多,这里主要列举两种。假如我们有程序ChatServer.java,通过编译后产生可执行文件ChatServer.class,我们要使ChatServer在linux服务器后台执行。当客户端关机后重新登入服务器后可以查看本来在终端输出的运行结果。(假设操作都在当前目录下)
方法1在终端输入命令:
java ChatServer > ChatServer.file 2>&1 &
解释:将ChatServer直接放在后台运行,并把终端输出存放在当前目录下的ChatServer.file文件中。
当客户端关机后重新登陆服务器后,直接查看ChatServer.file文件就可看执行结果(命
令:cat ChatServer.file )。
方法2在终端输入命令:
# nohup java ChatServer > ChatServer.file 2>&1 &
解释:nohup就是不挂起的意思,将ChatServer直接放在后台运行,并把终端输出存放在当前
目录下的ChatServer.file文件中。当客户端关机后重新登陆服务器后,直接查看ChatServer.file
文件就可看执行结果
三、查看当前服务器的网络状态
netstat -h
通过上述命令可以查看netstat命令的具体帮助,根据自己的需求选择合适的命令,显示出自己想要的信息