1、默认情况下,进程是在前台运行的,这时就把 shell 给占据了,我们再无法使用终端进行其它操作。

2、对于没有交互的进程,我们希望将其在后台启动,可以在命令的末尾加一个 “&” 字符实现这个目的。
切换到后台的进程称为job。切换到后台时会输出相关 job 信息,以输出的 [1]+ 已停止 ./ngrok.sh 为例 :[1] 表示job ID,./ngrok 表示对应的命令。切换到后台的进程,仍然可以用 ps 命令查看,或通过 jobs 命令只查看所有job(后台进程)。

注:后台进程会随着Shell的退出而结束。

3、守护进程是一种运行在后台的特殊进程,它摆脱了与控制终端的关系,终端关闭或丢失,不会影响守护进程的正常运行。守护
进程通常周期性地运行在系统中,等待某种事件的发生,为用户提供某种服务。例如 FTP 服务、web 服务等,守护进程通常在系统开机时自动启动。

如果一个进程永远都是以后台方式启动,并且不能受到Shell退出影响而退出,通常将其创建为守护进程(daemon),类似Windows服务。

进程查看命令:
守护进程:ps -x
普通进程:ps 或 带参数的其他ps命令
后台进程:jobs 或 前面的上述的那些命令

& :这个用在一个命令的最后,可以把这个命令放到后台执行

ctrl + z :可以将一个正在前台执行的命令放到后台,并且暂停

jobs :查看当前有多少在后台运行的命令

fg :将后台中的命令调至前台继续运行
  如果后台中有多个命令,可以用 fg %jobnumber 将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

bg :将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)