任务管理和计划任务

程序是静态的,进程的动态的有一定的生命周期,是动态产生和消亡的

进程id:pid
父进程id:ppid


前台进程:
后台进程:后台进程必须是非交互式的 例如ping  & 

写一个文件搜索的计划任务

进程状态:
就绪:已经为进程分配的cpu时间
运行:进程正在运行(直到消耗完分配的时间)
等待:(等待某种事件的发生)

from: :0 代表从xwindow登陆的
JCPU:cpu执行程序耗费的时间
PCPU:cpu执行程序所耗费的时间
what:用户正在执行的操作
load average:分别显示过去 1 5 15 过去的分钟内的平均负载程度
进程查看命令:ps  (process status)
a:(all)所有用户的进程
u:(user)显示用户名和启动时间
x:显示没有控制终端的进程(一般进程都会有终端的,但是很多系统用户启动的进程是没有终端的)
e:显示所有进程,包括没有控制终端的进程
l: 长格式显示
w:宽行显示,可以用多个w加宽显示


ps 获得自己的一些简单信息
ps -u or -l 查看隶属于自己进程的详细信息
ps -uU root 查看系统中指定用户执行的进程

pid:进程号
ppid:父进程的进程号
tty:进程启动的终端
stat:进程的当前状态 S(sleep):休眠状态:D(drop):不可终端的休眠状态,R(running):运行状态  Z()僵死状态,T(stop)停止状态       
ni:进程的优先级     
time:进程自从启动后总得占用cpu的时间
cmd:进程的命令名
user:用户名
%CPU:占用cpu时间的百分比
%mem:占用内存的百分比

ps - aux  or -le 查看所有用户的执行信息
ps -aux  --sort [time|pid|ppid]
/etc/rc.d/init.d/httpd status  通过进程脚本查看进程状态

查看某个用户的进程信息
ps -aux |grep sam  或者 ps -uU sam

查询系统中指定用户执行的进程

ps -le |grep init

pstree 进程树

关闭进程: kill
kill pid(进程id) 如果是父进程,子进程会自动关闭

kill -l  列出kill的所有信号
kill -9 pid 强行关闭
kill -1 pid (重启进程)

图形下面卡的时候  xkill 最好不要对着桌面和系统菜单

killall  与进程同名的进程  和关闭父进程有点类似
/proc  系统基本信息以及以进程命名的目录(相当于内存的一个镜像)
cat cpuinfo
cat emeinfo
cat partitions

pgrep 进程名(匹配)  根据进程名字查找pid

kill -l `pgrep httpd`

pkill 服务名 

优先级(默认是0)范围 -20~19
nice:指定启动服务时的优先级
nice --5 /etc/rc.d/init.d/httpd start 

renice:服务启动后改变优先级,改变一个正在运行程序的优先级

renice -5 pid

nohup 让进程在退出用户登录后依旧可以运行

ctal+c 停止程序运行
catl+z 暂停程序    

恢复到前台继续运行:fg  编号
回复到后后台:bg 编号

查看被暂停和后台运行的进程  jobs

top 类似ps -aux  默认五秒自动刷新
top -d 指定刷新的间隔
top -c 显示整个命令行,不只是命令名
d刷新间隔
c 显示整个命令行    
u:按用户查看
k:终止进程
r:设置优先级
h:帮助

只显示指定的进程名
top -p `pidof 进程名称`
_______________________________________________________________________
计划任务
at:一次性执行

man at

命令要写绝对路径(安全);
相对计时法(不推荐)
at now +n minutes
at now +n hours
at now +n days

绝对计时法:
at hh:mm MM/DD/YY
后面根据提示
ctrl+d保存

计划任务查看
finger root  (当前计划任务和邮件(at不包含在内))
ps -aux|grep atd (查看计划任务进程是否在启动)

启动at进程
1、service atd restart
2、 /etc/init.d/atd start


at -f 文件名 时间 #执行脚本
at -l or atq  #查看队列中的任务
at -d or atrm #序号

存放目录:/var/spool/at/

4(序号)       2012-03-18 00:00 a(active激活状态) root(哪个用户做的)
 
 限制哪些文件可以配置at
 /etc/at.allow
 /etc/at.deny
 如果都不存在 则只有root用户可以配置
 
 batch 同batch 负载平均值在0.8以下  才会执行  
 
 crontab -e
 把知道的具体时间填上,不知道的写*
 分钟 小时           日  月  星期  命令  0代表星期日
  0    4(24小时制)    *   *    *   cmd
                             2,5(不连续)
                        1-3(连续)     
 */2(每隔2分钟)            
                        9-6,9-12

crontab 写的计划任务都会存在  /var/spool/cron/root(用户名)下面

crontab  -l查看
crontab  -e  编辑  多个计划任务都会放到这个文件里
crontab  -r(会删除所有的) 推荐编辑就行  crontab -e

存在的目录:    /var/spool/cron/
配置文件目录:    /etc/crontab
查看进程是否启动
/etc/rc.d/init.d/cron start

01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

service crond restart

以上是系统默认的计划任务

standalone 独立运行 一直在监听 访问速度快  占用系统资源较大
xinetd  进程托管 适用于服务适用较少的

/etc/xinetd
比如telent 让xinetd 托管,平时不用启动,当有client请求23端口的会自动启动telent ,当客服端释放连接时,自动关闭进程,(响应速度可能会慢些)

atd crontab 计划任务 不可以精确到秒  机制:一直都在休眠,每隔一分钟醒来一次看看有没有需要执行的任务,然后继续休眠
pstree #以树状显示进程
原文地址:https://www.cnblogs.com/siqi/p/3590174.html