程序是静态的,进程的动态的有一定的生命周期,是动态产生和消亡的 进程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