问题描述:在Linux服务器上开发的程序,远程连接中断执行这个程序,但是终端关闭后这个运行的程序会作为终端窗口的子进程自动关闭。 我要让程序在终端的后台运行,关闭终端后程序仍然可以继续运行。
(1)使程序在后台运行方法
一般情况下,我们在命令后面加上&即可(如下面的语句会在后台执行可执行文件TCPServerFinal)
./TCPServerFinal &
关闭后台程序方法:使用jobs 命令列出正在运行的进程,使用kill命令结束进程(PID是用jobs命令查询出的进程号)。
jobs -l
kill PID
(2)已经运行的程序放到后台继续运行
ctrl+z 挂起任务
输入bg 命令将挂起的任务放到后台继续执行。
(3)使程序在后台执行,而且终端窗口关闭后不会作为子进程被中断:加上 nohup 命令
nohup ./TCPServerFinal &
这样关闭终端后程序仍然在继续运行。
如何关闭这个在后台运行的进程:使用 ps -A 命令查询这个进程的PID进程号,再用kill命令终止进程。
需要注意的是:nohup命令会将程序的输出定向到当前目录的 nohup.out 文件中,我的程序输出较多