Linux 基础-第9章 进程和信号

说明:本文内容来源于博主“骏马金龙”的《Linux基础千锤百炼》。 本文列出里面的骚操作,知识点,用于参考学习。

作者的第14章 开机流程 太深奥了,看不懂。就不做总结了
 

第9章 进程和信号

9.1.1 进程和程序的区别

程序是二进制文件,是静态存放在磁盘上的,不会占用系统运行资源(cpu/内存)。 进程是用户执行程序或者触发程序的结果,可以认为进程是程序的一个运行实例。进程是动态的,会申请和使用系统资源,并与操作系统内核进行交互。
 
(作者里面讲了很多概念和论证 ,具体可看原文)
Linux 基础-第9章 进程和信号
 

9.2 job 任务

大部分进程都能将其放入后台,这时它就是一个后台任务,所以常称为 job,每个开 启的 shell 会维护一个 job table,后台中的每个 job 都在 job table 中对应一个 Job 项。
手动将命令或脚本放入后台运行的方式是在命令行后加上"&"符号。例如:
Linux 基础-第9章 进程和信号
Linux 基础-第9章 进程和信号
 
jobs 命令可以查看后台 job 信息。
Linux 基础-第9章 进程和信号
 
另一种手动加入后台的方式是按下 CTRL+Z 键,这可以将正在运行中的进程加入到后 台,但这样加入后台的进程会在后台暂停运行。
Linux 基础-第9章 进程和信号
jobs 信息也看到了在每个 jobid 的后面有个"+"号,还有"-",或者不带符号。
 

Linux 基础-第9章 进程和信号

 

fg 和 bg 命令分别是 foreground background 的缩写

Linux 基础-第9章 进程和信号

Linux 基础-第9章 进程和信号

disown 命令

disown 命令可以从 job table 中直接移除一个 job,仅仅只是移出 job table, 并非是结束任务。
Linux 基础-第9章 进程和信号
 

9.3 终端和进程的关系

使用 pstree 命令查看下当前的进程。

Linux 基础-第9章 进程和信号

screen  和 nohup

Linux 基础-第9章 进程和信号

9.4 信号

kill 、 killall 、 pkill

Linux 基础-第9章 进程和信号

此外,经常看到有些服务程序(httpd/nginx)的启动脚本中使用 WINCH 和 USR1 这两个信号,发送这两个信号时它们分别表示 graceful stop 和 graceful restart。 (无缝切换nginx版本的时候见过这个两个信号)
 
 
Linux 基础-第9章 进程和信号
Linux 基础-第9章 进程和信号
 
Linux 基础-第9章 进程和信号
 

9.5 fuser lsof

Linux 基础-第9章 进程和信号

Linux 基础-第9章 进程和信号

 

9.5.2 lsof
Linux 基础-第9章 进程和信号
Linux 基础-第9章 进程和信号
Linux 基础-第9章 进程和信号