Linux学习笔记(6)-进程管理
2015-08-30 16:41
477 查看
一,程序和进程概念
程序和进程的区别
程序是静态概念,本身作为一种软件资源长期保存,而进程是程序的执行过程,他是动态概念,有自己的生命周期,是动态产生和消亡的一个程序可以由多个进程共用,一个进程在活动中可以顺序执行若干个程序
父进程和子进程
子进程是由一个进程所产生的进程,产生这个子进程的进程为父进程Linux系统中,使用系统调用fork穿件进程。fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境
父进程终止,子进程也会终止
前台进程和后台进程
前台进程在Shell中输入一个命令,创建一个子进程,运行命令,Shell就会等待命令完成,这个命令与Shell异步运行,即前台运行,用户在完成这个命令之前不能执行另一个命令
后台进程
在Shell中输入一个命令,如果后面加一个后台运行符&,Shell创建子进程运行此命令,但不等待命令退出,直接返回给用户提示符界面,这条命令就会与Shell同步运行,即后台运行(后台进程必须是非交互式的)
例如:
find / -name init > /test/init.find &
(查找所有带有init的放到/test/init.find文件中)
进程的状态
就绪状态进程已经分配到资源,但因为其他进程正在占用CPU,所以暂时不能运行,处于等待分配CPU的状态
等待状态
因等待某种事件而暂时不能运行的状态
运行状态
进程分配到CPU,正在处理器上运行
状态迁移的关系如下图:
二,进程管理的相关命令
查看用户信息命令:w
使用后效果如下:(查看某个用户信息:w 用户名)
各项参数的含义:
- JCPU:
以终端代号来区分,该终端所有相关进程执行时消耗的CPU时间
- PCPU:
CPU执行程序所消耗的时间
- WHAT:
用户正在执行的操作
- load average
后面跟着三个数字,分别表明系统过去1,5,15分钟内的平均负载程度(一般在0.8以下认为系统负载不高)
- FROM
显示用户从从何处登陆系统,“:0”表示用户该用户从X Window下登陆的
- IDLE
用户闲置时间,这是一个计时器,一旦用户执行任何操作,该计时器都会被重置
查看系统中的进程命令:ps
常用选项:- a:(all)显示所有用户进程
- u:显示用户名和启动时间
- x:显示没有控制终端的进程
- e:(every)显示所有进程,包括没有控制终端的进程
- l:长格式显示(显示详细信息)
- w:宽行显示,可以使用多个w进行加宽显示
当使用-l显示详细信息时,会有多个标识,如下所示:
其中标识的含义:
PID:进程号
PPID:父进程的进程号
TTY:进程启动的终端
STAT:进程当前状态
S:休眠状态
D:不可中断的休眠状态
R:运行状态
Z:僵死状态
T:停止
NI:进程优先级
TIME:进程自从启动以来启用CPU的总时间
COMMAND/CMD:进程的命令名
USER:用户名
%CPU:占用CPU时间和总时间的百分比
%MEM:占用内存与系统内存总量的百分比
PS命令的使用实例
ps:产看隶属于自己的进程
ps -u or -l:查看隶属于自己进程的详细信息
ps -le or -aux:查看所有用户执行的进程的详细信息
ps -aux –sort pid 按照进程执行的时间,PID,UID等对进程进行排序
ps -aux | grep Lily:查看Lily用户执行的进程
ps -uU Lily:查看Lily用户执行的进程
ps -le | grep init:查看指定进程信息
杀死进程命令:kill
关闭进程:kill 进程号kill有很多信号,可以使用kill -l全部列出来,如下两个信号最常用
强制关闭:kill -9 进程号(早期版本甚至可以强制关闭init进程)
重启进程:kill -1 进程号
关闭图形程序:xkill
关闭所有进程:killall
改变进程优先级命令:nice和renice
nice启动程序时指定程序运行的优先级
格式: nice -n command
例如: nice -5 someprogram
注释: 优先级(n)的范围(-20, 19),值越小,优先级越大
renice
改变一个正在运行的进程的优先级
格式: renice n pid
例如: renice -5 777
具体的例子:
正常启动httpd,其优先级为0,如下图:
关闭httpd,使用nice命令打开,则优先级为-5,如图
再用renice命令改变优先级为-10,如下图
使进程在用户退出后仍然执行的命令 : nohup
使用该命令让用户退出登录后仍然执行(区别于后台运行符&), nohup默认将执行后的数据信息和错误信息存放在nohup.out文件中使用格式:
nohup program &
例子:
nohup find / -name init* > /root/find.out &
进程的中止(挂起)和终止操作
挂起: Ctrl + Z终止: Ctrl + C
查看被挂起的进程命令: jobs
直接输入jobs就行
进程状态显示命令: top
显示进程状态,5秒更新一次,比ps好用…效果如下图:
常用选项(输入top之后,在top显示出来的界面输入d,q等命令)
d : 改变刷新时间
q : 退出
c : 显示整个命令,而不是仅仅显示命令名(可以查看具体在做什么操作)
u : 查看某个用户的进程信息
h : 查看帮助
三,计划任务
计划任务通常可以分为一次性计划任务和周期性计划任务一次性计划任务
在某个时刻执行一次at命令
功能:安排一个或多个命令(脚本)在指定时间运行一次使用格式:
at 时间例如:
at now +1 minutes
按下回车后, 进入at的交互模式,可以输入想要执行的命令
想要结束时,可以按下Ctrl + D结束at
这样, 输入的命令会在一分钟后执行
(把/下的所有文件写入/note中)
使用at执行一个脚本(多个命令):
比如要执行一个脚本at.script命令使用格式如下:
at -f at.script 9:00 today
或者
at < at.script 9:00 today
at命令的时间格式:
绝对计时方法:midnight noon teatime
hh:mm [today]
hh:mm tomorrow
hh:mm 星期
hh:mm MM/DD/YY
相对计时方法:
now + n minutes
now + n hours
now + n days
例子
假如现在是15年8月30日下午14:30,如果想指定15:30时执行计划任务
at 5:30pm
at 17:30
at 17:30 today
at now + 3 hours
at now + 180 minutes
at 17:30 8/30/15
查看at的计划任务:
atq或者at -l[root@localhost /]#atq
6 2015-08-30 16:09 a root
其中a表示active激活状态
另外, at在缺省状态下, 会把计划任务放在/var/spool/at/文件夹下
删除at的计划任务:
如果要删除刚才的计划任务,可以使用at -d 6删除刚才那个序号为6的计划任务
at的配置文件
限制哪些用户可以使用at命令/etc/at.allow
/etc/at.deny
如果at.allow文件存在,那么只有这个文件中的用户才能使用at命令
如果at.allow文件不存在,则检查at.deny是否存在,如果存在,则此文件中列出的用户都不能使用at,如果两个文件都不存在,那只有root可以使用at命令.
如果两个文件都存在且都为空,则所有用户都能使用at
batch命令
使用方法和格式和at完全一样唯一的不同点:
使用batch的计划任务在指定时间到了后, 会检查当前系统负载, 在负载较低(低于0.8)的时候执行
周期性计划任务
crontab命令格式
使用格式:crontab -l :显示当前的crontab
crontab -r :显示当前的crontab
crontab -e :使用编辑器编辑当前的crontab文件
相关文章推荐
- Linux Mint 17.2 update virtualbox5.0.2
- system函数和fork-exec机制
- [Linux运维]常用场景模拟 -- cpu使用率模拟
- Linux内核module_param的使用
- Linux包管理工具
- Linux进程管理与作业控制
- Linux系统启动流程
- Linux命令汇总之用户和组的相关命令
- linux文件所属用户和组
- Linux系统管理-(4)-RAID磁盘阵列技术
- Linux下rz/sz安装及使用方法
- vmware workstation Linux虚拟机中使用USB设备
- Linux学习笔记――LVM2
- Linux下netstat和vmstat以及ifstat的使用
- centos6.5离线安装mysql
- WinSCP:支持与linux互传的windows端的图形化SCP
- CentOS yum upgrade, Error Loaded plugins: fastestmirror
- Linux服务篇之十二:源码包构建LAMP服务器
- linux screen 配置文件 超好用
- Linux_3day------------搭建ftp服务器