Linux 前后台程序

后台程序基本上不和用户交互,优先级别稍微低一点;前台的程序和用户交互,需要较高的响应速度,优先级别稍微高一点。

直接从后台手工启动一个进程用得比较少一些,除非是该进程甚为耗时,且用户也不急着需要结果的时候。假设用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。

LINUX后台进程与前台进程的区别

LINUX后台进程也叫守护进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。

一般用作系统服务,可以用crontab提交,编辑或者删除相应得作业。

守护的意思就是不受终端控制。Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完成许多系统任务。比如,作业规划进程crond,打印进程lpd等。

前台进程就是用户使用的有控制终端的进程

shell下,进程的前台与后台运行

跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z

  1. & 最经常被用到

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

  2. ctrl + z

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

  3. jobs

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

  4. fg

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

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

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

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

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

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

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

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

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

    主进程waitpid(pid,&status,WUNTRACED)时,子进程

    退出时,父进程被唤醒

  6. 将后台任务唤醒,在后台运行;

    kill(pid,SIGCONT);

  7. 将后台运行的程序放到前台;

    kill(pid,SIGCONT);

    waitpid(pid,&status,WUNTRACED);

可见,后台运行与前台运行的区别只在于前台运行等待子进程的退出而阻塞父进程操作。而后台运行时,可以在父进程中输入命令继续其他操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值