您的位置:首页 > 运维架构 > Linux

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”,来指定所要发送的信号。

其他常用信号:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: