Linux-进程管理
1.进程和进程控制的概念
查看进程状态
w :查看个别用户进程
JCPU:所有任务执行的耗费
pcpu:正在执行所耗费的
WHAT:长在执行的任务
IDLE:闲置时间
FROM:在哪登陆
load average:每分钟的负载
ps -aux --sort pid(可以排序)
-a:显示所有用户的进程
-u:显示用户名和启动时间
-x:显示没有控制终端的进程(系统自动开启的,并不是通过命令手动开启的)
ps -aux|grep xclock: |管道使用
ps -el
-e:显示所有进程,包括没有控制终端的进程
-l:长格式显示
进程的组成:
PID:进程号 PPID:父进程的进程号 TTY:进程启动的终端
STAT:
s:休眠 D:不可终端的休眠 R:运行 Z:僵尸 T:停止
NI:进程优先级
进程的挂起和恢复
TIME:
进程启动以来使用CPU的总时间
COMMAND:
运行命令的名称
杀死或重新启动进程
改变进程的运行优先级
2.进程状态的查看、控制
杀死进程
为什么:过多CPU,锁住了CPU的空间,过大,没有效果,无法正常退出……
kill 进程号
kill -s 信号 进程号
kill -l 得到所有的信号
killall 进程名(cmd)
改变进程的优先级(-20,19)
nice -n command &:指定n优先级 &后台执行
renice n pid :改变一个正在运行的进程的优先级
进程状态显示和进程控制(默认每5秒刷新一次):
top -d 1:-d 间隔时间 -c:显示整个命令行,而不仅显示命令名 -q:立刻更新所显示的信息
进入top 后,获得热点:u-用户 r--重设优先级 s--刷新时间间隔 k--杀死指定进程
挂起进程:ctrl+z 如果开启时,可以在后面使用& ctrl+c 终止
jobs:多少个进程在使用
fg 4:放到前台
bg 4:恢复后台
3.一次性安排进程任务
开启at:service atd start
at:安排作业在某一时刻执行一次
开启后;
at 时间
在某个时间点执行某个命令时,一定要使用命令的全路径
时间确定:
1.绝对的时间 midnight noon teatime hh:mm[today|tomorrow|星期] mm/dd/yyyy
2.相对计时方式 now+n minute now+n hours now+n day
如:指定在今天下午5:30执行某个命令(假设现在的时间为中午12:30 2016年2.29)
--:at 5:30pm at 17:30 at 17:30 today at now+5 hours at now+300 minutes at 17:30 02.29.2016
指定的时间一定是以后的
at -f 文件 时间点:执行命令文件
at <one.txt 时间点:同上
at的执行结果和配置文件
结果:会通过邮件寄给提交这个命令的用户
配置文件:可以限制哪些用户可以使用at命令
/etc/at.allow:如果该文件存在,那么只有列在此文件中的用户才可以使用at命令。如果这个文件不存在,则会检查/etc/at.deny
/etc/at.deny:如果这个文件存在,则在此文件中列出的用户都不能使用at命令。
如果两个文件都不存在,只有root用户可以使用at命令,如果两个文件都存在,都为空,则所有用户都可以使用at命令
at 10:56
at>/bin/cp -r /root/* /home/jennyxu
at>/bin/echo "00000" /root/one.txt
ctrl+D 退出
at -l 查看 q查看
at -d |atrm:删除任务
batch:安排作业在系统负载不忙时执行一次
4.周期性安排进程任务
crond
1.service crond start
crond 进程会搜索crontab文件并载入内存
crontab文件即/var/spool/cron/目录以用户名命名的文件
如果这个进程启动以后,它将首先检查是否用户设置了crontab文件,如果没有就直接转入“休眠”状态,释放系统资源,
crond进程每分钟醒来一次,查看crontab文件决定当前是否有需要执行的命令。
命令执行结束后,任何输出都将作为邮件发送给crontab的所有者
crontab -e:使用编辑器编辑当前的crontab文件,结束后会自动安装到计划-u:指定用户
crontab -l:使在标准输出中输出显示当前crontab文件的内容
crontab -r 删除当前的crontab
该文件由6部分组成:
minute:一小时的哪一分钟 0-59
hour: 一天中的哪个小时0-23
day-of-month :一个月的哪一天 1-31
month-of-year:一年中的哪一月 1-12
day-of-week:一周的哪一天0-6
commands:用户需要周期执行的命令,也要使用命令的全路径,不能是相对路径
这些项目都不能为空,必须填入的内容,,如果用户不需要指定其中的几项,可以使用*表示任何时间,每个时间字段都可以指定多个值,它们可以用“,”间
隔,5-8,* /5
命令应该给出绝对路径,用户必须具有运行所对应命令或程序的权限
/etc/cron.allow
/etc/cron.deny
用来限制哪些用户可以使用crontab(类似at)