Linux程序、进程管理
2013-07-01 00:16
148 查看
Linux程序、进程管理
Linux操作系统包括如下3种不同类型的进程,每种进程都有其自己的特点和属性。
(1)交互进程:由shell启动的进程。可在前台运行,也可在后台运行;
(2)批处理进程:一个进程序列;
(3)守护进程:守护进程(Daemon,也称为精灵进程)是指在后台运行而又没有启动终端或登录shell。守护进程一般由系统开机时通过脚本(script)自动激活启动或者由root用户通过shell启动。守护进程总是活跃的,一般在后台运行,所以它所处的状态是等待处理任务的请求。
启动守护进程有如下几种方法:
1)在引导系统时启动:通过脚本启动,这些脚本一般位于/etc/rc.d中。在/etc目录下的很多rc文件都是启动脚本 。rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d,其中的数字代表在指定的runlevel下运行相应的描述,0代表关机,6代表重启。其中,以k开头的文件表示关闭,以s开头的文件表示重启。可查看相应文件夹中的readme文件。rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d,rcS.d都连接到/etc/init.d文件夹,该目录中存放着守护进程的运行文件。
2)人工手动从shell提示符启动:任何具有权限的用户都可以启动相应的守护进程
root@Ubuntu:~#/etc/init.d/vsftpd start//启动FTP服务器,ubuntu下默认已经安装了vsfptd服务器
3)使用crond守护进程启动
4)执行at命令启动
后台进程:在shell下直接输入命令后,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “ & ” 符号。例如: root@Ubuntu:~# find / -name passwd&
一般将一些比较耗时的操作放到后台执行。
前台进程与后台进程的区别:前台进程有控制终端,后台进程没有控制终端,所以没有结果可以显示。 前台进程绝大部分是用户进程,后台的一般(大多数是)系统进程。守护进程都是后台进程
进程的执行模式划分为用户模式和内核模式:系统进程,只运行在内核模式,执行操作系统代码,完成一些管理性的工作。用户进程,运行在用户模式下,通过系统调用或在出现中断、异常时进入内核模式。
进程管理常用命令:
jobs 命令:显示当前正在后台执行的任务,得到相关的信息之后,可以对任务进行一步操作,如果用fg命令调用前台程序运行,或者使用kill命令结束任务。
ps只为您提供当前进程的快照。要即时查看最活跃的进程,可使用 top。
top实时地提供进程信息。它还拥有交互式的状态,允许用户输入命令,如 n 后面跟有 5 或 10 等数字。其结果是指示 top 显示 5 或 10 个最活跃的进程。Top 持续运行,直到您按"q" 退出 top 为止。
查看进程状态——ps命令
ps [option]
-e显示所有进程.//包括有终端的和没有终端的
-f全格式显示进程信息.
-h不显示标题.
-l长格式.
-w宽输出.
a显示终端上的所有进程,包括其他用户的进程.
-r只显示正在运行的进程.
x显示没有控制终端的进程.
u显示用户名和进程的起始时间
ps命令输出字段的含义:
root@Ubuntu:~# ps //显示终端内正在运行的进程。
PID TTY TIME COMMAND
5800 ttyp0 00:00:00 bash
5835 ttyp0 00:00:00 ps
$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 psu
查看某进程是否启动
ps -ax | grep xxx进程
比如ps –ef| grep less
ps -aux | grep firefox //查看firefox进程是否启动
|:一个管道符号将ps的结果导向到grep去查找特定的进程;即将标准输出传递给grep作为输入ps | grep后面要加要找的进程。
结束进程
root@Ubuntu:~#kill -9 6388 //结束进程号是6388的进程
-9表示无条件的结束一个进程
大多数情况下,不带参数的kill就可以结束大多数进程。
kill的操作对象是PID。一般都要先用ps或top等命令查处PID 后,才能工作。kill的实际工作是对PID发送一个信号。
SIGTERM 15终止进程。这也是默认值。
SIGKILL 9强制终止进程。
SIGSTOP 19暂停进程。
SIGCONT 18继续进程。
SIGHUP 1一般程序收到此信号会退出,有些程序能够用此信号来reload。
使用方法:kill [信号] 进程号
CTRL+C也可以结束前台进程,但对于后台进程只能用kill结束。
killall可以不用找出PID,直接加上CMD就可杀除进程,但是,也有些缺点,它会把任何同名的程序全部删除。
[root@ht root]# killall bash
会杀掉所有正在使用的bash。
进程的挂起及恢复
挂起前台进程:CTRL+Z
恢复进程执行,两种方法
1.用fg命令将挂起的作业放到前台执行
2.用bg命令将挂起的作业放到后台执行
优先级的设置
Linux可以动态修改进程的优先级,以确保每个进程都可以得到一些CPU时间。在Linux中进程的优先级从最低19到最高-20。数字越小,优先级越高。优先级具有继承性。子进程会从父进程处获得优先级指数。设置优先级主 要使用nice和renice命令。
为程序定义一个初始化优先级指数。
[root@htroot]# nice -19 tail –f message&
接着大家使用ps可以查看该程序所对应的那行,NI的值是19,系统最低的优先级,获得最少的CPU时间。
[root@ht root]# nice --20 message &
给一个程序加上最高的优先级,最高的优先级指数是- 20,注意这里是2个“-”号。
进程为什么要挂起?
在多进程程序系统中,进程在处理器上交替运行,在运行、就绪和阻塞3种基本状态之间不断地发生变化。由于进程的不断创建,系统资源(特别是主存资源)已不能满足进程运行的要求。此时就必须将某些进程挂起,对换到磁盘镜像区,暂时不参与进程调度,以平衡系统负载的目的。如果系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
所谓挂起状态,实际上就是一种静止的状态。一个进程被挂起后,不管它是否在就绪状态,系统都不分配给它处理机。(区别于阻塞状态)。这样进程的三态模型(执行、就绪、阻塞)就变为五态模型:执行状态、活动就绪状态、静止就绪状态、活动阻塞状态和静止阻塞状态
活动就绪:指进程在主存并且可被调度的状态 (对应于三态的就绪状态)
静止就绪:指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活动就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活动就绪。
活动阻塞:指进程在主存中。一旦等待的事件产生,便进入活动就绪状态(对应于三态的阻塞状态)
静止阻塞:指进程对换到辅存时的阻塞状态。一旦等待的事件产生,便进入静止就绪状态。
Linux操作系统包括如下3种不同类型的进程,每种进程都有其自己的特点和属性。
(1)交互进程:由shell启动的进程。可在前台运行,也可在后台运行;
(2)批处理进程:一个进程序列;
(3)守护进程:守护进程(Daemon,也称为精灵进程)是指在后台运行而又没有启动终端或登录shell。守护进程一般由系统开机时通过脚本(script)自动激活启动或者由root用户通过shell启动。守护进程总是活跃的,一般在后台运行,所以它所处的状态是等待处理任务的请求。
启动守护进程有如下几种方法:
1)在引导系统时启动:通过脚本启动,这些脚本一般位于/etc/rc.d中。在/etc目录下的很多rc文件都是启动脚本 。rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d,其中的数字代表在指定的runlevel下运行相应的描述,0代表关机,6代表重启。其中,以k开头的文件表示关闭,以s开头的文件表示重启。可查看相应文件夹中的readme文件。rc0.d,rc1.d,rc2.d,rc3.d,rc4.d,rc5.d,rc6.d,rcS.d都连接到/etc/init.d文件夹,该目录中存放着守护进程的运行文件。
2)人工手动从shell提示符启动:任何具有权限的用户都可以启动相应的守护进程
root@Ubuntu:~#/etc/init.d/vsftpd start//启动FTP服务器,ubuntu下默认已经安装了vsfptd服务器
3)使用crond守护进程启动
4)执行at命令启动
后台进程:在shell下直接输入命令后,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “ & ” 符号。例如: root@Ubuntu:~# find / -name passwd&
一般将一些比较耗时的操作放到后台执行。
前台进程与后台进程的区别:前台进程有控制终端,后台进程没有控制终端,所以没有结果可以显示。 前台进程绝大部分是用户进程,后台的一般(大多数是)系统进程。守护进程都是后台进程
进程的执行模式划分为用户模式和内核模式:系统进程,只运行在内核模式,执行操作系统代码,完成一些管理性的工作。用户进程,运行在用户模式下,通过系统调用或在出现中断、异常时进入内核模式。
进程管理常用命令:
jobs 命令:显示当前正在后台执行的任务,得到相关的信息之后,可以对任务进行一步操作,如果用fg命令调用前台程序运行,或者使用kill命令结束任务。
ps只为您提供当前进程的快照。要即时查看最活跃的进程,可使用 top。
top实时地提供进程信息。它还拥有交互式的状态,允许用户输入命令,如 n 后面跟有 5 或 10 等数字。其结果是指示 top 显示 5 或 10 个最活跃的进程。Top 持续运行,直到您按"q" 退出 top 为止。
查看进程状态——ps命令
ps [option]
-e显示所有进程.//包括有终端的和没有终端的
-f全格式显示进程信息.
-h不显示标题.
-l长格式.
-w宽输出.
a显示终端上的所有进程,包括其他用户的进程.
-r只显示正在运行的进程.
x显示没有控制终端的进程.
u显示用户名和进程的起始时间
ps命令输出字段的含义:
root@Ubuntu:~# ps //显示终端内正在运行的进程。
PID TTY TIME COMMAND
5800 ttyp0 00:00:00 bash
5835 ttyp0 00:00:00 ps
$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
test 5800 0.0 0.4 1892 1040 ttyp0 S Nov27 0:00 -bash
test 5836 0.0 0.3 2528 856 ttyp0 R Nov27 0:00 psu
查看某进程是否启动
ps -ax | grep xxx进程
比如ps –ef| grep less
ps -aux | grep firefox //查看firefox进程是否启动
|:一个管道符号将ps的结果导向到grep去查找特定的进程;即将标准输出传递给grep作为输入ps | grep后面要加要找的进程。
结束进程
root@Ubuntu:~#kill -9 6388 //结束进程号是6388的进程
-9表示无条件的结束一个进程
大多数情况下,不带参数的kill就可以结束大多数进程。
kill的操作对象是PID。一般都要先用ps或top等命令查处PID 后,才能工作。kill的实际工作是对PID发送一个信号。
SIGTERM 15终止进程。这也是默认值。
SIGKILL 9强制终止进程。
SIGSTOP 19暂停进程。
SIGCONT 18继续进程。
SIGHUP 1一般程序收到此信号会退出,有些程序能够用此信号来reload。
使用方法:kill [信号] 进程号
CTRL+C也可以结束前台进程,但对于后台进程只能用kill结束。
killall可以不用找出PID,直接加上CMD就可杀除进程,但是,也有些缺点,它会把任何同名的程序全部删除。
[root@ht root]# killall bash
会杀掉所有正在使用的bash。
进程的挂起及恢复
挂起前台进程:CTRL+Z
恢复进程执行,两种方法
1.用fg命令将挂起的作业放到前台执行
2.用bg命令将挂起的作业放到后台执行
优先级的设置
Linux可以动态修改进程的优先级,以确保每个进程都可以得到一些CPU时间。在Linux中进程的优先级从最低19到最高-20。数字越小,优先级越高。优先级具有继承性。子进程会从父进程处获得优先级指数。设置优先级主 要使用nice和renice命令。
为程序定义一个初始化优先级指数。
[root@htroot]# nice -19 tail –f message&
接着大家使用ps可以查看该程序所对应的那行,NI的值是19,系统最低的优先级,获得最少的CPU时间。
[root@ht root]# nice --20 message &
给一个程序加上最高的优先级,最高的优先级指数是- 20,注意这里是2个“-”号。
进程为什么要挂起?
在多进程程序系统中,进程在处理器上交替运行,在运行、就绪和阻塞3种基本状态之间不断地发生变化。由于进程的不断创建,系统资源(特别是主存资源)已不能满足进程运行的要求。此时就必须将某些进程挂起,对换到磁盘镜像区,暂时不参与进程调度,以平衡系统负载的目的。如果系统出现故障,或者是用户调试程序,也可能需要将进程挂起检查问题。
所谓挂起状态,实际上就是一种静止的状态。一个进程被挂起后,不管它是否在就绪状态,系统都不分配给它处理机。(区别于阻塞状态)。这样进程的三态模型(执行、就绪、阻塞)就变为五态模型:执行状态、活动就绪状态、静止就绪状态、活动阻塞状态和静止阻塞状态
活动就绪:指进程在主存并且可被调度的状态 (对应于三态的就绪状态)
静止就绪:指进程被对换到辅存时的就绪状态,是不能被直接调度的状态,只有当主存中没有活动就绪态进程,或者是挂起态进程具有更高的优先级,系统将把挂起就绪态进程调回主存并转换为活动就绪。
活动阻塞:指进程在主存中。一旦等待的事件产生,便进入活动就绪状态(对应于三态的阻塞状态)
静止阻塞:指进程对换到辅存时的阻塞状态。一旦等待的事件产生,便进入静止就绪状态。
相关文章推荐
- 【linux高级程序设计】(第八章)进程管理与程序开发 2
- 【linux高级程序设计】(第八章)进程管理与程序开发 4
- Linux进程管理与程序开发
- Linux高级程序进程管理
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 管道 分类: Linux --- 应用程序设计 2014-11-05 11:18 75人阅读 评论(0) 收藏
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - 信号集与屏蔽信号 分类: Linux --- 应用程序设计 2014-11-08 13:19 53人阅读 评论(0) 收藏
- Supervisor Linux程序进程管理
- linux 进程间信号量管理程序之sem_timedwait使用
- 让linux程序后台执行(后台程序管理利器supervisior管理Flume进程)
- linux 进程间信号量管理程序之sem_timedwait使用
- Linux进程管理之执行新的程序
- Linux高级程序_进程管理
- Linux高级程序进程管理
- Linux进程启动过程分析do_execve(可执行程序的加载和运行)---Linux进程的管理与调度(十一)
- Linux 程序设计学习笔记----进程管理与程序开发(下)
- 【linux高级程序设计】(第八章)进程管理与程序开发 1
- 【linux高级程序设计】(第八章)进程管理与程序开发 3
- Linux进程启动过程分析do_execve(可执行程序的加载和运行)---Linux进程的管理与调度(十一)
- Linux进程管理与程序开发
- 【原创】《Linux高级程序设计》杨宗德著 - 进程管理与程序开发 - System V进程间通信基础 分类: Linux --- 应用程序设计 2014-11-11 13:08 51人阅读 评论(0) 收藏