linux进程系统

■  程序 vs. 进程

  程序静态地存放在磁盘中。用户可以触发执行程序,被触发后的程序就存进内存中成为一个个体,即为进程。

  有些进程(比如crond需要每分钟都扫描、守护进程等等)是常驻在内存中的

■  父与子

  用父进程提供的接口执行新程序就生成了子进程。具体过程是父进程先fork()复制一个pid和自身不同,ppid和自身pid相同的进程,然后再把子进程的代码用exec()加载进该新进程的程序块部分,从而生成了一个子进程。

■  工作管理(job control)

  ● 工作

  一个job本身就是一个由bash开启的子进程。把它叫做job是因为需要把它纳入一个工作管理的体系中来进行管理。job在jobcontrol的体系中有一个单独的标号以及状态字段。标号用于指明是那个job,而状态有Running,Killed,Done等等用于指明job的状态。

  ● 终端和虚拟终端

  首先来搞清楚终端和虚拟终端的区别(tty和pts)。linux字符界面上,默认是有多个终端可以切换的,从tty0到tty6,用alt+F1~F7来切换终端屏幕。每个终端可以登入不同的用户,执行不同的命令而互相不影响。通过telnet,ssh等连接上linux系统后的操作界面则是一个虚拟终端,叫pts。pts没有个数限制,从pts0开始编号

  一般来说在某一个时刻在一个终端上,能和用户进行交互的进程最多只有一个。如果想在一个终端上进行多个进程的综合管理,就需要job control。同时这也说明了,job control这个概念是面向一个终端而言的。讨论跨终端的工作管理没有意义。不同的终端拥有各自独立的工作管理体系,即使连入用户相同。

  ● jobs

  用于查看当前所有工作的状态(主要是后台运行中的工作)。job分成前台和后台,前台job和后台job的主要区别是是否占用当前终端的stdin。一个前台job会在结束之前占用掉stdin让用户无法继续输入,一个后台job则会让出stdin让用户可以输入信息。jobs命令可以加上参数-p(只显示各个job的pid)和-l(显示各个job的详细信息)

  ● <cmd> &

  其实是关于&的作用,其意思是把某个进程(由cmd命令执行的进程)放到后台运行,前台就可以切换回普通的输入模式了。需要注意的一个坑是:在键入&之后命令行返回的类似于"[1] 2472 xxxx"的东西并不属于子进程stdout的一部分。所以即使在脚本中写了获取一个job或者说是一个子进程的stdout,那里面也是没有这段信息的。另外,把job放到后台只是说把stdin给让出来了,并没有说stdout和stderr也会被隐去,所以当子进程的stdout有输出的时候还是会反馈到父进程中的界面上来的。

  ●  nohup

  nohup的功能,用官方点的中文来说是脱机管理。相当于把进程的stdout和stderr重定向到当前目录下的nohup.out文件中(如果写入失败的话就重定向到$HOME/nohup.out中)。简单地说,nohup和<cmd> >output 2>&1 的功能基本上是一样的。但nohup比普通的重定向更NB的地方在于其可以无视所有SIGNUP信号。最明显的一个例子就是,用nohup开启的进程不会随终端被关闭而被挂起,而普通重定向开的进程会。所以一般要开启一个服务或者守护进程之类的东西的话肯定是要用nohup的。

  把nohup和&结合起来用,前者把stdout重定向到文件,后者把进程放到后台,让出stdin。这么一来就可以使得进程得到真正意义上的后台运行了(开启进程之后用户可以继续在命令行操作,且进程的输出被导入到文件里所以用户也不会被其输出的信息打扰到)

  除了默认的nohup.out作为输出文件,nohup后面也可以跟上重定向的那些命令来自定义输出的文件,比如 nohup <cmd> > output.file 2>&1就可以把所有信息都输出到output.file而不是nohup.out里面了。

  ● fg %(n)

  n是某个job的编号,这条命令的作用是把某个工作拉回前台处理(fg是foreground的简略,拉回前台的意思是只重新让其占据stdin)

  ● bg%(n)

  让某个后台中,状态为Stopped的job变为Running。相当于在后台中激活某个任务

  ● ctrl-z

  在某个前台job正在运行时按下,可以让当前job状态变为Stopped并丢进后台。

  ● kill -signal %(n)

  这个和进程的kill是一个意思,只不过这里确定一个进程的方法不是pid而是该进程对应的job的编号。关于signal的常用选择有: -1是指重新读取一次参数 -9是强制杀掉 -15是让它正常结束

转载于:https://www.cnblogs.com/franknihao/p/6668308.html

【Linux】 linux的进程系统一点补充相关推荐

  1. linux开启审计进程,系统运维|Auditd-Linux 服务器安全审计工具

    首先,Linux中国祝贺读者 2015羊年春节快乐,万事如意! .下面开始这个新年版审计工具的介绍. 安全防护是首先要考虑的问题.为了避免别人盗取我们的数据,我们需要时刻关注它.安全防护包括很多东西, ...

  2. linux atop日志查看,A - atop - 监控Linux系统资源与进程的工具 - 《Linux命令大全搜索工具(旧版)》 - 书栈网 · BookStack...

    atop 监控Linux系统资源与进程的工具 补充说明 [非内部程序,需要安装]它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU.内存.磁盘和网络)使用情况和进程运行情况,并能以日志 ...

  3. linux结束打印机进程,Linux系统,如何知道哪个进程在打印log?

    Linux系统,如何知道哪个进程在打印log? 关注:155  答案:2  mip版 解决时间 2021-02-07 10:18 提问者彼岸独舞 2021-02-06 23:42 调试嵌入式机器的时候 ...

  4. 群晖备份linux分区,黑群晖二合一系统无损扩充系统分区方法补充

    黑群晖二合一系统无损扩充系统分区方法补充 2020-01-19 14:54:08 28点赞 172收藏 35评论 创作立场声明:本文作者也是经过多次重装实验,耗费了大把时间,值钱用diskgenius ...

  5. Linux中不同进程同一个端口,linux系统实现多个进程监听同一个端口

    通过 fork 创建子进程的方式可以实现父子进程监听相同的端口. 方法:在绑定端口号(bind函数)之后,监听端口号之前(listen函数),用fork()函数生成子进程,这样子进程就可以克隆父进程, ...

  6. 机顶盒+linux服务,应用于低端Linux电视机顶盒内进程通信的系统及方法与流程

    本发明涉及低端电视机顶盒通信技术领域,具体涉及一种应用于低端linux电视机顶盒内进程通信的系统及方法. 背景技术: 现有的低端电视机顶盒因内存.flash的限制,一般采用linux操作系统,而lin ...

  7. Linux笔记整理(1)系统的加载和main函数执行准备

    <Linux内核设计的艺术>笔记 基于linux0.11,主要研究原理,对自己不清楚的地方会有一点个人补充,偶尔会穿插其他版本的对比. 内核版本和发行版本 linux内核和发行版不是一个概 ...

  8. 【Linux】从冯诺依曼体系到初识Linux下的进程

    目录 前言 1.冯诺依曼体系结构 2.管理和操作系统 3.初识进程 1.描述进程PCB(process control block) 1.标识符pid fork接口创建子进程 2.进程状态 3.进程优 ...

  9. Linux网络与进程管理

    本文主要介绍了网络与进程的相关内容以及在Linux上如何进行网络与进程管理,包括以太网介绍,TCP/IP,网络分层模型,IP地址的规划:同时介绍了Linux内核在进程管理方面的相关机制 文章目录 一. ...

最新文章

  1. Python基础20-面向对象:静态、组合、继承与派生、多态、封装、反射、内置attr方法等
  2. Qt5开发及实例学习之标准颜色对话框类QColorDialog:选择某种颜色
  3. android:background=@color/white [create file color.xml at res/values/]
  4. JQUERY的html()
  5. 一步步在Docker里运行Web应用
  6. TrackBar问题,有高人能解决吗?
  7. 微信小程序python人工智能回复_用python itchat写一个微信机器人自动回复
  8. java编程练习题三
  9. 围棋人机大战属于计算机在什么方面的应用,新华社评围棋人机大战:不怕电脑记性好 就怕爱学习...
  10. 接苹果游戏 小学生邀请赛T3
  11. 神经网络学说的主要观点,神经网络宏观解释包括
  12. html5css3菜鸟教程,HTML5+CSS3实现拖放(Drag and Drop)示例
  13. Web_制作页面开场动画并解决自动播放问题
  14. [SpringCould篇]之服务消费方式Ribbon+RestTemplate
  15. 代理模式相关简单论述
  16. pc端和移动端集成第三方快捷登录 --- 微博为例
  17. 计算机如何永久删除文件无法找回,电脑文件永久性删除了怎么办?简单五招教你恢复...
  18. DedeCMS最新文章、相关文章、推荐文章、热点文章、头条
  19. 扎好篱笆桩:三大运营商守住网络安全“命门”
  20. Android之侧滑删除RecyclerView

热门文章

  1. UnicodeDecodeError解决办法
  2. ios 获得通讯录中联系人的所有属性 亲测,可行 兼容io6 和 ios 7
  3. 修改文档框架:word-多级列表与标题样式相结合
  4. 【原】ASP.Net WebForm的发布(图解)
  5. HTML表单的enctype属性详解{转}
  6. [整理]Windows Mobile(.NET CF)开发的书籍
  7. 关于PyCharm无法启动的问题
  8. GPIO模拟I2C程序实现
  9. Word中插入参考文献及其引用并能够自动更新的方法
  10. java shiro原理_Springboot shiro认证授权实现原理及实例