Linux学习笔记(十四)进程
2014-09-24 11:44
218 查看
进程是如何工作的:
当系统启动的时候,内核先把一些自己的程序初始化为进程,然后运行一个叫做init的程序。init再依次运行一系列的称为init脚本的shell脚本(位于/etc),它们可以启动所有的系统服务。其中许多系统服务以守护(daemon)程序的形式实现,守护程序仅在后台运行,没有任何用户接口。这样,即使我们没有登录系统,至少系统也在忙于执行一些例行事务。
内核维护每个进程的信息,以此来保持事情有序。例如,系统分配给每个进程一个数字,这个数字叫做进程 ID 或 PID。PID 号按升序分配,init 进程的 PID 总是1。内核也对分配给每个进程的内存进行跟踪。像文件一样,进程也有所有者和用户 ID,有效用户 ID,等等。
查看进程-ps
可以看出,默认情况下,ps不会显示很多进程信息,只是列出与当前终端会话相关的进程。TTY是Teleype的简称,是指进程的控制终端。TIME字段表示进程所消耗的CPU时间数量。
(1) 加上“x”选项,告诉ps命令,展开所有进程,不管它们由什么终端控制。TTY为?,表示没有控制终端,STAT显示了进程当前状态,进程的状态包括:
(2) 另一个选项组合时aux,将会提供给我们更多信息。
命令列标题的含义如下:
动态查看进程-top
top程序使用来查看系统中“顶端”进程的。top显示结果由两部分组成:最上面是系统概要,下面是进程列表。
控制进程
输入gedit命令时,将会弹出记事本程序,但注意shell提示符并没有返回。这是因为shell正在等待这个程序结束,如果关闭getdit窗口,shell提示符就返回了。
中断一个进程
在一个终端,输入Ctrl+c,将中断一个程序,许多命令行程序可以被中断。
将一个进程放置到后台
启动一个程序,让它立即在后台运行,我们可以在程序命令之后,加上“&”字符:
jobs命令可以查看当前正在运行的任务。
停止一个进程
输入Ctrl-z,可以停止一个前台进程,但并没有终止。使用fg命令,可以恢复程序到前台,或者用bg命令把程序移到后台。
kill命令可以“杀死”进程,单并不是确切地“杀死”程序,而是给程序发送信号。使用Ctrl-c时,会发送一个INT(中断)的信号;当使用Ctrl-z时,则发送一个叫做TSTP(终端停止)的信号。
kill的语法一般为:kill [-signal] PID...
示例:
注意,既可以使用号码,也可以用名字,不过要在名字前加字母“SIG”,来指定所要发送的信号。
其他常用信号:
当系统启动的时候,内核先把一些自己的程序初始化为进程,然后运行一个叫做init的程序。init再依次运行一系列的称为init脚本的shell脚本(位于/etc),它们可以启动所有的系统服务。其中许多系统服务以守护(daemon)程序的形式实现,守护程序仅在后台运行,没有任何用户接口。这样,即使我们没有登录系统,至少系统也在忙于执行一些例行事务。
内核维护每个进程的信息,以此来保持事情有序。例如,系统分配给每个进程一个数字,这个数字叫做进程 ID 或 PID。PID 号按升序分配,init 进程的 PID 总是1。内核也对分配给每个进程的内存进行跟踪。像文件一样,进程也有所有者和用户 ID,有效用户 ID,等等。
查看进程-ps
可以看出,默认情况下,ps不会显示很多进程信息,只是列出与当前终端会话相关的进程。TTY是Teleype的简称,是指进程的控制终端。TIME字段表示进程所消耗的CPU时间数量。
(1) 加上“x”选项,告诉ps命令,展开所有进程,不管它们由什么终端控制。TTY为?,表示没有控制终端,STAT显示了进程当前状态,进程的状态包括:
(2) 另一个选项组合时aux,将会提供给我们更多信息。
命令列标题的含义如下:
动态查看进程-top
top程序使用来查看系统中“顶端”进程的。top显示结果由两部分组成:最上面是系统概要,下面是进程列表。
控制进程
输入gedit命令时,将会弹出记事本程序,但注意shell提示符并没有返回。这是因为shell正在等待这个程序结束,如果关闭getdit窗口,shell提示符就返回了。
中断一个进程
在一个终端,输入Ctrl+c,将中断一个程序,许多命令行程序可以被中断。
将一个进程放置到后台
启动一个程序,让它立即在后台运行,我们可以在程序命令之后,加上“&”字符:
jobs命令可以查看当前正在运行的任务。
停止一个进程
输入Ctrl-z,可以停止一个前台进程,但并没有终止。使用fg命令,可以恢复程序到前台,或者用bg命令把程序移到后台。
kill命令可以“杀死”进程,单并不是确切地“杀死”程序,而是给程序发送信号。使用Ctrl-c时,会发送一个INT(中断)的信号;当使用Ctrl-z时,则发送一个叫做TSTP(终端停止)的信号。
kill的语法一般为:kill [-signal] PID...
示例:
注意,既可以使用号码,也可以用名字,不过要在名字前加字母“SIG”,来指定所要发送的信号。
其他常用信号:
相关文章推荐
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
- linux学习笔记-读《Linux编程技术详解》-守护进程
- Linux进程通信---学习笔记(二)
- linux进程学习笔记一--进程控制
- Linux进程线程学习笔记:进程创建
- 深入LInux内核结构学习笔记---进程表示
- Linux内核学习笔记之进程管理2—进程的组织形式
- Linux实践工程师学习笔记十四
- Linux下学习守护进程的笔记
- Linux+C学习笔记之进程管理
- Linux系统学习笔记:进程
- Linux进程线程学习笔记:运行新程序
- Linux进程线程学习笔记 系列转
- Linux学习笔记---进程
- linux学习笔记:关于linux守护进程与终端的通信
- Linux进程线程学习笔记
- Linux进程线程学习笔记:进程间通信 之 管道
- Linux 学习笔记(四)进程控制
- Linux进程线程学习笔记:进程创建