Linux进程管理与计划任务

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

父子进程关系:
系统使用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 命令名查看命令的绝对路径

计划任务的时间值无法设置精确到秒。

你可能感兴趣的:(Linux进程管理与计划任务)