后台进程又叫守护进程,你知道吗? shell
操做系统中,前台进程和后台进程有什么区别?特征是什么? 服务器
后台程序基本上不和用户交互,优先级别稍微低一点
前台的程序和用户交互,须要较高的响应速度,优先级别稍微高一点 spa
直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着须要结果的时候。假设用户要启动一个须要长时间运行的格式化文本文件的进程。为了避免使整个shell在格式化过程当中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。 操作系统
LINUX后台进程与前台进程的区别 进程
LINUX后台进程也叫守护进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端而且周期性地执行某种任务或等待处理某些发生的事件。 事件
通常用做系统服务,能够用crontab提交,编辑或者删除相应得做业。 crontab
守护的意思就是不受终端控制。Linux的大多数服务器就是用守护进程实现的。好比,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。好比,做业规划进程crond,打印进程lpd等。 it
前台进程就是用户使用的有控制终端的进程 后台
shell下,进程的前台与后台运行 终端
跟系统任务相关的几个命令: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> 将后任务的程序放到前台;
1. ctrl+z 将任务放到后台去,并暂停.
主进程waitpid(pid,&status,WUNTRACED)时,子进程
退出时,父进程被唤醒
2. 将后台任务唤醒,在后台运行;
kill(pid,SIGCONT);
3. 将后台运行的程序放到前台;
kill(pid,SIGCONT);
waitpid(pid,&status,WUNTRACED);
//可见,后台运行与前台运行的区别只在于前台运行等待子进程的退出而阻塞父进程操做。然后台运行时,能够在父进程中输入命令继续其余操做。本质上没有区别,都是给子进程发送SIGCONT信号。