进程管理

来源:互联网 发布:淘宝买便宜东西的软件 编辑:程序博客网 时间:2024/06/03 21:34

linux的进程之间的调用(fork and exec)

(1)系统先以 fork 的方式复制一个与父进程相同的暂存进程,这个进程与父进程唯一的差别就是 PID不同! 但是这个暂存进程还会多一个 PPID 的参数, PPID 就是父进程的进程标识符
(2)暂存进程开始以 exec 的方式加载实际要执行的程序,最终产生子进程

服务(daemon):常驻在内存中的进程

服务大致可分为系统所需要的服务(e.g. crond和atd)和负责网络联机的服务(httpd,vsftpd)

多重登入环境的七个基本终端窗口:

在 Linux 当中,默认提供了六个文字界面登入窗口,以及一个图形界面,你可以使用 [Alt]+[F1]…..[F7]来切换不同的终端机界面,而且每个终端机界面的登入者还可以不同人!

特殊的进程管理行为:

如果我在 Linux下以文字界面登入,在屏幕当中显示错误讯息后就挂了~动都不能动,该如何是好!? 这个时候那默认的七个窗口就帮上忙啦!你可以随意的再按 [Alt]+[F1]…..[F7] 来切换到其他的终端机界面,然后以 ps -aux 找出刚刚的错误进程,然后给他 kill 一下,回到刚刚的终端机界面

bash 环境下的工作管理 (job control):

在单一的bash接口下,如何同时进行多个工作?
e.g.

cp file1 file2 &

在这一串指令中,重点在那个 & 的功能,他表示将 file1 这个文件复制为 file2 ,且放置于背景中执行, 也就是说执行这一个命令之后,在这一个终端接口仍然可以做其他的工作!而当这一个指令(cp file1 file2) 执行完毕之后,系统将会在你的终端接口显示完成的消息!

工作管理(job control)

进行工作管理的行为中, 其实每个工作都是目前 bash 的子进程,亦即彼此之间是有相关性的。 我们无法以 job control 的方式由 tty1 的环境去管理 tty2 的bash !

bash中进行job control的限制:

  • 这些工作所触发的进程必须来自于你 shell 的子进程(只管理自己的 bash);
  • 前景:你可以控制与下达指令的这个环境称为前景的工作 (foreground);
  • 背景:可以自行运作的工作,你无法使用 [ctrl]+c 终止他,可使用 bg/fg 调用该工作(背景中的工作分为两种状态执行中的和暂停);
  • 背景中『执行』的进程不能等待 terminal/shell 的输入(input)

将背景工作拿到前景来处理:fg

查看当前有多少工作在背景执行:jobs

jobs [-l]fg %jobnumber

让工作在背景下的状态变成运作中: bg

杀死在背景中的工作: kill

bg %jobnumberkill -signal %jobnumber

进程的观察

ps截取一个时间点进程的状态

ps aux //查看系统的所有进程数据ps -l  //查看当前bash相关的进程

top可以持续观察进程的状态

top [-d 数字] | top [-bnp]

系统资源的观察

free :观察内存使用情况
uname:查阅系统与核心相关信息
uptime:观察系统启动时间与工作负载
netstat :追踪网络或插槽文件
dmesg :分析核心产生的讯息
vmstat :侦测系统资源变化
pidof :找出某支正在执行的程序的 PID

原创粉丝点击