Linux 基础-第9章 进程和信号
说明:本文内容来源于博主“骏马金龙”的《Linux基础千锤百炼》。 本文列出里面的骚操作,知识点,用于参考学习。
作者的第14章 开机流程 太深奥了,看不懂。就不做总结了
第9章 进程和信号
9.1.1 进程和程序的区别
程序是二进制文件,是静态存放在磁盘上的,不会占用系统运行资源(cpu/内存)。 进程是用户执行程序或者触发程序的结果,可以认为进程是程序的一个运行实例。进程是动态的,会申请和使用系统资源,并与操作系统内核进行交互。
(作者里面讲了很多概念和论证 ,具体可看原文)
9.2 job 任务
大部分进程都能将其放入后台,这时它就是一个后台任务,所以常称为 job,每个开 启的 shell 会维护一个 job table,后台中的每个 job 都在 job table 中对应一个 Job 项。
手动将命令或脚本放入后台运行的方式是在命令行后加上"&"符号。例如:
过 jobs 命令可以查看后台 job 信息。
另一种手动加入后台的方式是按下 CTRL+Z 键,这可以将正在运行中的进程加入到后 台,但这样加入后台的进程会在后台暂停运行。
从 jobs 信息也看到了在每个 jobid 的后面有个"+"号,还有"-",或者不带符号。
fg 和 bg 命令分别是 foreground 和 background 的缩写
disown 命令
disown 命令可以从 job table 中直接移除一个 job,仅仅只是移出 job table, 并非是结束任务。
9.3 终端和进程的关系
使用 pstree 命令查看下当前的进程。
screen 和 nohup
9.4 信号
kill 、 killall 、 pkill
此外,经常看到有些服务程序(如 httpd/nginx)的启动脚本中使用 WINCH 和 USR1 这两个信号,发送这两个信号时它们分别表示 graceful stop 和 graceful restart。 (无缝切换nginx版本的时候见过这个两个信号)
9.5 fuser 和 lsof
9.5.2 lsof