为什么要使程序在后台执行
我们计算的程序都是周期很长的,通常要几个小时甚至一个星期。我们用的环境是远程连接到Linux服务器,所以使程序在后台跑有以下三个好处:
- 我们这边是否关机不影响日本那边的程序运行。(不会像以前那样,我们这网络一断开,或一关机,程序就断掉或找不到数据,跑了几天的程序只能重头再来,很是烦恼)
- 不影响计算效率
- 让程序在后台跑后,不会占据终端,我们可以用终端做别的事情
使用nohup和&使程序在后台运行
命令格式:nohup Command [ Arg … ] [ & ]
比如:
nohup ./test > out.log 2>&1 &
解释:nohup就是不挂起的意思,将可执行文件test直接放在后台运行,并把终端输出存放在当前目录下的out.log文件中。当客户端关机后重新登陆服务器后,直接查看out.log即可
关于 2>&1
不懂得可以看博客Linux里的2>&1究竟是什么
如何查看后台运行的程序
jobs -l
jobs
命令只看当前终端生效的,关闭终端后,在另一个终端jobs
已经无法看到后台跑得程序了,此时利用ps(进程查看命令)
ps -u
该命令查看属于当前用户的进程信息 ,若想查看别的信息,可以学习ps命令的其他用法。
如何中止后台运行的程序
使用命令kill -9 pid
即可。
参考:https://www.cnblogs.com/zhming26/p/6089928.html
https://blog.csdn.net/ninisui/article/details/77989938