进程管理
来源:互联网 发布:淘宝店主不同意退货 编辑:程序博客网 时间:2024/06/18 14:18
1 进程的概念
1.1 进程和程序的区别
程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,它是动态概念,有一定的生命期,是动态产生和消亡的;
程序和进程无一一对应关系。一个程序可以由多个进程共用;
【/etc/rc.d/init.d/httpd status】查看httpd的运行状态
【/etc/rc.d/init.d/httpd start】启动http服务
【ps -le | grep httpd】查看httpd相关的所有进程
另一方面,一个进程在活动中也可顺序地执行若干个程序。
【pwd ; date ; find / -name abc】
1.2 父进程与子进程
子进程是由一个进程所产生的进程,产生这个子进程的进程成为父进程。
在Linux系统中,使用系统调用fork创建进程。fork复制的内容包括:父进程的数据和堆栈段,以及父进程的进程环境。
父进程终止子进程自然终止。
1.3 前台进程和后台进程
前台进程:【find / -name init】
在Shell提示处打入命令后,创建一个子进程,运行命令,Shell等待命令退出,然后返回到对用户给出提示符。这条命令与Shell异步运行,即在前台运行,用户在它完成之前不能执行另一条命令。
后台进程:【find / -name init > ./test/init.find &】
在Shell提示处打入命令,若后随一个&,Shell创建的子进程运行此命令,但不等待命令退出,而直接返回到对用户给出提示。这条命令与Shell同步运行,即在后台运行。后台进程必须是非交互式的。
1.4 进程状态
就绪:进程已经分配到资源,但因为其他进程正占用CPU,所以暂时不能运行而等待分配CPU的状态;
等待:因等待某种事件而暂时不能运行的状态;
运行:进程分配到CPU,正在处理器上运行;
进程状态细化:
2 进程管理命令
2.1 查看用户信息【w】
- JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里;
- PCPU:CPU执行程序耗费的时间;
- WHAT:用户正在执行的操作;
【w 用户名】查看个别用户信息
- load average:分别显示系统在过去1、 5、 15分钟内的平均负载程度;
- FROM:显示用户从何处登录系统,“:0”的显示代表该用户是从X Window下,打开本模式窗口登录的;
- IDLE:用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置;
2.2 查看进程信息【ps】
【ps】查看隶属于自己的进程
【ps -u】【ps -l】查看隶属于自己进程的详细信息
【ps -aux】【ps -le】查看所有用户执行的进程的详细信息
【ps -aux --sort pid】可按进程执行的时间、PID、UID等对进程进行排序
- PID:进程号;
- PPID:父进程的进程号;
- TTY:进程启动的终端;
- STAT:进程当前状态:S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止;
- NI:进程优先级;
- TIME:进程自从启动以来启用CPU的总时间;
- COMMAND/CMD:进程的命令名;
- USER:用户名
- %CPU:占用CPU时间和总时间的百分比;
- %MEM:占用内存与系统内存总量的百分比;
【ps -le | grep httpd】查询指定应用的进程信息
【ps -aux | grep xiaoming】【px -uU xiaoming】查询系统中指定用户执行的进程
【ps -le | grep init】查看指定进程信息
【pstree】查看父进程和子进程树
2.3 kill--杀死进程
需要杀死进程的情况:
- 该进程占用了过多的CPU时间;
- 该进程锁住了一个终端,使其他前台进程无法运行;
- 运行时间过长,但没有预期效果;
- 产生了过多到屏幕或磁盘文件的输出;
- 无法正常退出;
2.4 通过proc目录查看进程和系统详细信息
【ls /proc】查看所有进程相关文件(伪文件系统,该目录存放在内存中)
【cat /proc/cpuinfo】查看cpu信息
【cat /proc/meminfo】查看内存信息
【cat /proc/partitions】查看分区信息
2.5 进程优先级nice
优先级取值范围:(-20, 19); 值越小,越优先
【nice -优先级数值 程序名称】指定程序的运行优先级
- 如:【nice --5 /etc/rc.d/init.d/httpd start】指定优先级为-5
【renice 优先级数值 进程号】改变一个正在运行的进程的优先级
- 如:【renice -9 `pgrep httpd`】指定优先级为-5
2.6 nohup指定进程在用户退出后继续执行
nohup使进程在用户退出登录后,仍旧继续执行,nohup命令将执行后的数据信息和错误信息默认存储到文件nohup.out中
格式:【nohup find / -name init* > /test/init.find &】
2.7 进程的挂起和恢复
进程的中止(挂起)和终止:
- 挂起(Ctrl+Z)
- 终止(Ctrl+C)
进程的恢复:
- 恢复到前台继续运行(fg)
- 恢复到后台继续运行(bg)
【find / -name init > find.init】
Ctrl+Z 挂起
【jobs】 [1]+ Stopped find / -name init > find.init
【fg 1】 前台继续执行编号为1的进程 【bg 1】后台继续执行编号为1的进程
2.8 top动态进程显示
- d:指定刷新的时间间隔
- c:显示整个命令行,而不仅仅显示命令名
- u:查看指定用户的进程
- k:终止执行中的进程
- h or ? :获得帮助
- r:重新设置进程优先级
- s:改变刷新的时间间隔
- W:将当前设置写入~/.toprc文件中
3 计划任务
实现自动化管理,减轻管理工作
计划任务的命令:
- at:安排作业在某一时刻执行一次
- batch:安排作业在系统负载不重时执行一次
- cron:安排周期性运行的作业
3.1 at
安排一个或多个命令在指定时间运行一次
3.1.1 at命令格式及参数
- 【at -f 文件名 时间】
- 【at -d 任务序号】或【atrm 任务序号】删除队列中的任务
- 【at -l】或【atq】查看队列中的任务
- 任务存放路径【ls -l /var/spool/at/】
3.1.2 at命令指定时间的方式
- 绝对计时方法
- 相对计时方法
示例:
3.1.3 示例--两分钟后广播文件中的内容
使用at时,首先检查atd服务是否启动;如果没有启动,则启动atd
【ps -le | grep atd】查看
【/etc/rc.d/init.d/atd start】启动
【at now +2 minutes】设置计划任务,两分钟后执行
按Ctrl+D结束编辑
3.1.4 at配置文件
如果/etc/at.allow文件存在,那么只有列在此文件中的用户才可以使用at命令;
若/etc/at.allow文件不存在,则检查/etc/at.deny文件是否存在。若/etc/at.deny存在,则在此文件中列出的用户都不能使用at命令。
如果两个文件都不存在,则只有超级用户可以使用at命令;
如果两个文件都存在,而且均为空,则所有用户都可以使用at命令。
3.2 batch
安排一个或多个命令在系统负载轻时运行一次(一般情况下负载较轻指平均负载降到0.8以下)
使用方法同at
3.3 crontab
用于生成cron进程所需要的crontab文件
3.3.1 crontab命令格式
【crontab 选项】
- -l:显示当前的crontab
- -r:删除当前的crontab
- -e:使用编辑器编辑当前的crontab文件
3.3.2 crontab文件格式
- 这些选项都不能为空,必须填入
- 如果用户不需要指定其中的几项,那么可以使用统配符*表示任何时间
- 每个时间字段都可以指定多个值,他们之间用逗号间隔
- 命令应该给出绝对路径
- 用户必须具有运行所对应的命令或程序的权限
3.3.3 应用范例
3.3.4 crontab配置文件
4 进程处理方式
- standalone:独立运行
- xinetd:进程托管
- atd、crond计划任务
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- 进程管理
- compileDebugNdk'. > Error: Your project contains C++ files but it is not using a supported nati
- iptables基本概念及操作
- Unity 游戏框架搭建 (七) 减少加班利器-QApp类
- 统计自然语言处理(基于语料库的工作)
- 欢迎使用CSDN-markdown编辑器
- 进程管理
- Spring
- 字串变换
- 1334: 矩阵转置
- 设计模式-创建型模式
- MATLAB logspace( )
- POJ 1273 Drainage Ditches——最大流
- 桶排序
- ES-索引过程和检索过程