默认状况下,进程是在前台运行的,这时就把shell给占据了,咱们没法进行其它操做。对于那些没有交互的进程,不少时候,咱们但愿将其在后台启动,能够在启动参数的时候加一个'&'实现这个目的:shell
zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ./zkServer.sh start & [1] 21304 zsm@wilburUbun:~/application/zookeeper-3.4.8/bin$ ZooKeeper JMX enabled by default Using config: /home/zsm/application/zookeeper-3.4.8/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [1]+ Done ./zkServer.sh start
切换到后台的进程称为job。切换到后台时会输出相关job信息,之前面的输出[1] 21304为例:[1]表示job ID,21304表示进程ID是21304。 切换到后台的进程,仍然能够用ps命令查看,或经过jobs命令只查看全部job(后台进程)。app
后台进程会随着Shell的退出而结束。spa
若是一个进程永远都是之后台方式启动,而且不能受到Shell退出影响而退出,一个正统的作法是将其建立为守护进程(daemon)。守护进程值得是系统长期运行的后台进程,相似Windows服务。守护进程信息经过ps –a没法查看到,须要用到–x参数,当使code
用这条命令的时候,每每还附上-j参数以查看做业控制信息,其中TPGID一栏为-1就是守护进程。blog
后台进程的文件描述符也是继承于父进程,例如shell,因此它也能够在当前终端下显示输出数据。可是daemon进程本身变成了进程组长,其文件描述符号和控制终端没有关联,是控制台无关的。继承
基本上任何一个程序均可之后台运行,但守护进程是具备特殊要求的程序,好比要脱离本身的父进程,成为本身的会话组长等,这些要在代码中显式地写出来换句话说,守护进程确定是后台进程,但反之不成立。 进程
守护进程:ps -xio
普通进程:ps 或 带参数的其余ps命令class
后台进程:jobs 或 前面的上述的那些命令后台
fg、bg、jobs、&、ctrl+z
这个用在一个命令的最后,能够把这个命令放到后台执行
能够将一个正在前台执行的命令放到后台,而且暂停
查看当前有多少在后台运行的命令
将后台中的命令调至前台继续运行
若是后台中有多个命令,能够用 fg %jobnumber将选中的命令调出,%jobnumber是经过jobs命令查到的后台正在执行的命令的序号(不是pid)
若是后台中有多个命令,能够用bg %jobnumber将选中的命令调出,%jobnumber是经过jobs命令查到的后台正在执行的命令的序号(不是pid)
1. jobs列举出后台做业信息。([做业号] 运行状态 做业名称)
2. ctrl+z 将任务放到后台去,并暂停;
3. bg <%int> 将后台任务唤醒,在后台运行;
4. fg <%int> 将后任务的程序放到前台;