参考
http://www.cnblogs.com/ggjucheng/archive/2012/10/21/2733028.html
在命令后添加一个&,如firefox &:后台执行。
jobs -l 命令列出当前有多少在后台运行的命令
Ctrl+z或者发送信号17 : 用于将当前正在运行的前台进程暂停,变成后台进程
fg :将后台中的命令调至前台继续运行,如fg 1 ,1是编号,或者 fg %name,name为命令名称,如 fg %ping
bg :将后台暂停的进程继续运行,如bg 1,1是编号
以远程连线方式连接到你的 Linux 主机,并且将工作以 & 的方式放到背景去(ssh),断开ssh连接后,背景中的工作会中断,详细:http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
可用 【 nohup [命令与参数] <==在终端机前景中工作 】方式保持不中断
或者 使用伪终端screen,默认job的bash是sshd的子进程,修改后成为screen伪终端的子进程。pstree -H pid可查看进程的父子关系
防止job随着终端shell的退出而退出,可以如下处理:
(1) 使用nohup命令来阻止后台的进程在退出shell后被杀掉,让提交的命令忽略所有的hangup信号。nohup xxxxx
(2) 当前shell退出后任然能保持在后台运行,那么可以在输入disown命令,再退出shell程序。可以在忘记使用:nohup或setsid 的情况下,亡羊补牢。disown –h %jobid
(3) setsid xxxxx 可以避开当前终端发出的HUP信号。