详解linux后台、前台运行进程
程序运行可以有2种
前台运行
程序运行在当前的终端,所有的信息都输出到屏幕上,占用你的终端,你也无法继续使用
如果终端异常关闭,导致程序会自动退出
后台运行
不会占用你的终端,程序在系统后台跑着,你该干啥干啥,终端关了,程序也继续运行。
后台运行命令
命令集合
command & # 未启动的command放入后台去运行
jobs # 查看后台进程列表
ctrl + z # 暂停进程
bg # 程序放入后台运行,和 & 一样
fg # 将后台任务放入前台执行
后台命令实战(实战经验)
1.命令直接放入后台运行,注意日志写入到黑洞文件
[root@master10 ~]# ping www.jd.com > /dev/null &
[1] 3694
[root@master10 ~]#
2.查看后台任务列表
[root@master10 ~]# jobs
[1]+ Running ping www.jd.com > /dev/null &
3.可以将后台任务,放入前台执行,然后ctrl + z 再次暂停程序,放入后台
[root@master10 ~]# fg 1
ping www.jd.com > /dev/null
^Z
[1]+ Stopped ping www.jd.com > /dev/null
[root@master10 ~]#
的确发现了一个停止的程序
[root@master10 ~]# jobs
[1]+ Stopped ping www.jd.com > /dev/null
[root@master10 ~]#
4.可以再次让程序运行起来,并且依然是运行在后台
[root@master10 ~]# bg 1
[1]+ ping www.jd.com > /dev/null &
[root@master10 ~]# jobs
[1]+ Running ping www.jd.com > /dev/null &
[root@master10 ~]#
nohup命令
直接使用&符号让命令在后台运行有一个风险,当前bash会话异常断开后,后台运行的命令也随之消失。
但利用 nohup结合&符号使用可以避免这一风险。