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

Linux进程管理与计划任务

2015-06-11 11:08 579 查看
程序是一个静态的概念,最为软件资源长期存在于硬盘中。
进程是一个动态的概念,是程序的执行过程。
程序与进程没有一一对应的关系。
进程与程序也没有一一对应关系。

父子进程关系:
系统使用fork创建进程,子进程由父进程产生。
父进程终止,子进程自然终止。
如果父进程终止,子进程归属于root(1)进程所有。
前台进程:
命令与shell异步运行,即前台运行,用户在其完成前不能执行另一命令。
~~~~~~~~~~~~~~~~~~~~~
后台进程:
命令与shell同步运行,后台进程必须是非交互式的。
进程的三种状态:就绪状态,运行状态,阻塞状态。

进程状态的细化分类:
用户态运行:在CPU上执行用户代码。
核心态运行:在CPU上执行核心代码。
在内存就绪:具备运行条件,等待调度程序为它分配CPU。
在内存睡眠:因等待某事件发生,而在内存中排队等待。
在外存就绪:就绪进程被交换到外存上继续处于就绪态。
在外存睡眠:就绪进程被交换到外存上继续等待。
在内存暂停:因调用stop程序而进入跟踪暂停状态,等待其父进程发送命令。
在外存暂停:处于跟踪暂停态的进程被交换到外存上。
创建态:新进程正在被创建,但尚未完成的中间态。
终止态:进程终止自己。
w
查看当前登陆的用户状态。
显示项JCPU显示该终端所有相关进程执行消耗的CPU时间。
PCPU
CPU执行程序消耗的时间。
WHAT用户正在执行的操作。
load average
显示当前系统平均负载程度。显示过去1、5、15分钟的平均值
FROM
显示用户从何处登陆。:0表示从Xwindow登陆。
IDLE
用户闲置时间。
ps
进程管理命令
-a
显示所有用户进程
-u
显示用户名和启动时间
-x
显示没有控制终端的进程
-l
长格式显示,即显示详细信息
-w
宽行显示,可以使用多个w进行加宽显示
-e
显示所有进程,包括没有控制终端的进程
pstree
查看系统中进程信息,以树状显示。
显示选项的含义
PID
进程号
PPID
父进程进程号
TTY
进程启动的终端
STAT
进程当前状态
S
休眠状态
D
不可中断的休眠状态
R
运行状态
Z
僵死状态
T
停止状态
NI
进程优先级
TIME
进程自启动以来占用CPU的总时间
COMMAND/CMD进程的命令名
USER用户名
%CPU
占用CPU时间和总时间的百分比
%MEM
占用内存与系统内存总量的百分比。

ps -le or -aux 查看所有用户执行的进程的详细信息。
ps -aux --sort pid 可以按进程执行的时间、PID、UID等对进程进行排序。
ps -uU 用户名 查看系统中指定用户执行的进程
ps -le|grep init 查看指定进程的信息。

kill
杀死进程。

kill PID
关闭进程,关闭父进程可以直接导致其子进程关闭
kill -9 PID
强制关闭
kill -1 PID
重启进程
xkill
关闭图形进程
killall
关闭进程同名的进程
pgrep 服务名
查找服务进程号
pkill 进程名
关闭进程
nice
指定程序的运行优先级
nice -n 程序名(PID)
renice
改变一个正在运行的程序的优先级renice -n 程序名(PID)
优先级的范围为(-20,19)
优先级的缺省为0
no hup program &

当用户退出时继续执行
CTRL+Z
进程挂起
CTRL+C
终止进程
fg
恢复到前台继续执行
bg
恢复到后台继续执行
jobs
查看被挂起的进程
top
相当于进程管理器,会动态刷新
下面指令是在top运行后键入的
d
指定刷新间隔,默认是3秒钟更新
c
显示整个命令行而不是仅仅显示命令名
u
查看指定用户的进程
k
终止执行中的进程
h or ?
获得帮助
r
重新设置进程优先级
s
改变刷新时间间隔
W
将当前设置写入~/.toprc文件中
计划任务命令
at
安排作业在某一时刻执行一次
batch
安排作业在系统负载不重时执行一次
cron
安排周期性运行的作业
at [-f 文件名] 时间
at -d or atrm
删除队列中的任务
at -l or atq
查看队列中的任务
at的时间表示法
绝对计时方法:

midnight noon teatime

hh:mm[today]

hh:mm tomorrow

hh:mm week

hh:mm MM/DD/YY
相对计时方法:

now +n minutes

now +n hours

now +n days

crontab
命令格式
crontab{-l|-r|-e}
-l
显示当前的crontab
-r
删除当前的crontab
-e
使用编辑器编辑当前的crontab文件
crontab -e
分钟 小时 天 月 星期 命令/脚本
Minute 一天中的哪一分钟【0~59】
hour 一天中的哪个小时【0~23】
day-of-month 一月中的哪一天【1~31】
month-of-year 一年中的哪个月【1~12】
day-of-week 一周中的哪一天【0~6】
以每天凌晨4点的计划任务举例
0 4 * * * 命令,不知道不清楚用*表示
逗号用来分隔不连续的值,-用来连接连续的值

*/2每隔两分钟,命令建议使用绝对路径
使用which 命令名查看命令的绝对路径
计划任务的时间值无法设置精确到秒。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: