Linux 普通进程 后台进程 守护进程

1、普通进程与后台进程

默认状况下,进程是在前台运行的,这时就把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

2、守护进程

若是一个进程永远都是之后台方式启动,而且不能受到Shell退出影响而退出,一个正统的作法是将其建立为守护进程(daemon)。守护进程值得是系统长期运行的后台进程,相似Windows服务。守护进程信息经过ps –a没法查看到,须要用到–x参数,当使code

用这条命令的时候,每每还附上-j参数以查看做业控制信息,其中TPGID一栏为-1就是守护进程。blog

3、守护进程与后台进程

后台进程的文件描述符也是继承于父进程,例如shell,因此它也能够在当前终端下显示输出数据。可是daemon进程本身变成了进程组长,其文件描述符号和控制终端没有关联,是控制台无关的。继承

基本上任何一个程序均可之后台运行,但守护进程是具备特殊要求的程序,好比要脱离本身的父进程,成为本身的会话组长等,这些要在代码中显式地写出来换句话说,守护进程确定是后台进程,但反之不成立。 进程

4、进程查看

守护进程:ps -xio

普通进程:ps 或 带参数的其余ps命令class

后台进程:jobs 或 前面的上述的那些命令后台

5、跟系统任务相关的几个命令

fg、bg、jobs、&、ctrl+z

1. & 最常常被用到

   这个用在一个命令的最后,能够把这个命令放到后台执行

2. ctrl + z

     能够将一个正在前台执行的命令放到后台,而且暂停

3. jobs

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

4. fg

     将后台中的命令调至前台继续运行  

  若是后台中有多个命令,能够用 fg %jobnumber将选中的命令调出,%jobnumber是经过jobs命令查到的后台正在执行的命令的序号(不是pid)

5. bg 将一个在后台暂停的命令,变成继续执行

若是后台中有多个命令,能够用bg %jobnumber将选中的命令调出,%jobnumber是经过jobs命令查到的后台正在执行的命令的序号(不是pid)

  1. jobs列举出后台做业信息。([做业号]   运行状态   做业名称)

  2. ctrl+z 将任务放到后台去,并暂停;

  3. bg  <%int> 将后台任务唤醒,在后台运行;

  4. fg   <%int> 将后任务的程序放到前台;

相关文章
相关标签/搜索