Linux进程管理 详细介绍
来源:互联网 发布:淘宝全球购要身份证 编辑:程序博客网 时间:2024/05/22 10:46
- :Linux进程管理
- A:进程的概念
- -->进程和程序的区别:
- 1:进程是静态的概念,本身作为一种软件资源长期保存;而进程是程序的执行过程,
- 它是动态概念,有一定的生命期,是动态生成和消亡的。
- 2:程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个进程
- 在活动中有可以顺序地执行若干个程序
- -->父进程与子进程:
- 1:子进程是由一个进程所产生的进程,产生这个进程的程序称为父进程。
- 2:在linux系统中,使用系统调用fork创建进程。fork复制的内容包括父进程
- 的数据和堆栈以及父进程的进程环境
- 3:父进程终止子进程也终止
- -->前台进程和后台进程
- 1前台进程:在shell提示出打入命令后,创建一个子进程,运行命令,shell等待命令退出,
- 能后返回到对用户给出提示符。这个命令与shell异步运行,即在前台运行,用户在
- 它完成之前不能执行另一个命令。
- 如:find / -name init 这个命令要等很久才能找到,但没找到之前只能等待。
- 2后台进程:在shell提示出打入命令,若后随一个&,shell创建的子进程运行此命令,但不等待
- 命令退出,而直接返回到对用户给出提示。这条命令与shell同步运行,即在后台运行。后台
- 进程必须是非交互式的(如:ping 192.168.1.12 &,这是交互式的)
- 如:find / -name init > /test/init.find & 会创建个子进程运行该命令,不用等待,可以立马做别的操作
- -->进程状态:
- 1 就绪:进程已经分配到资源,但因为其他进程正占用CPU,所以暂时不能运行要等待分配CPU的状态
- 2 等待:因等待某种时间而暂时不能运行的状态(如:暂停进程)
- 3 运行:进程分配到CPU,正在处理器上运行
- -->查看用户信息W
- w 显示信息的含义:
- JCPU:以终端代号来区分,该终端所有相关的进程执行时,所消耗的CPU时间会显示在这里
- PCPU:cpu执行程序耗费的时间
- WHAT:用户正在执行的操作
- load average:分别显示系统在过去1、5、15分钟内的平均负载程度,(平均负载值在0.8以下,为较轻负载)
- FROM:显示用户从何处登录系统,":0"的显示代表该用户是从X Window下,打开文本模式窗口登录的
- IDLE:用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
- 查看个别用户信息:w 用户名
- B:进程管理命令
- -->查看系统中的进程ps:
- 常用选项
- a: 显示所有用户的进程
- u: 显示用户名和启动时间
- x: 显示没有控制终端的进程
- e: 显示所有进程,包括没有控制终端的进程
- l: 长格式显示
- w: 宽行显示,可以使用多个w进行加宽显示
- ps应用实例:
- #ps 查看隶属于自己的进程
- #ps -u or -l 查看隶属于自己进程详细信息
- #ps -le or -aux 查看所有用户执行的进程的详细信息
- #ps -aux --sort pid 可按进程执行的之间PID、UID等对进程进行排序
- 列出的进程信息含义:
- PID:进程号
- PPID:父进程的进程号
- TTY:进程启动的终端
- STAT:进程当前状态
- S休眠状态,D不可中断的休眠状态,R运行状态,Z僵死状态,T停止
- NI:进程优先级
- TIME:进程自从开启以来启用CPU的总时间
- COMMAND/CMD:进程的命令名
- USER:用户名
- %CPU:占用CPU时间和总时间的百分比
- %MEM:占用内存与系统内存总量的百分比
- ps应用实例:
- 查看系统中指定用户执行的进程
- #ps -aux | grep leyangjun
- #ps -uU leyangjun
- 查看进程信息
- #ps -le |grep httpd
- /etc/rc.d/init.d/httpd status 也可以查看进程是否启动
- 查看系统中所有树状结构的信息
- pstree | more
- --> kill 杀死进程
- 为什么要杀死进程:
- 1:该进程占用了过多的CPU时间
- 2:该进程锁住了一个终端,是其他前台后台的进程无法运行
- 3:运行时间过长,但没有预期效果
- 4:产生了过多到屏幕或磁盘文件的输出
- 5:无法正常退出
- 用法:
- 关闭进程:kill 进程号
- kill -9 进程号(强行关闭)
- kill -1 进程号(重启进程)数字1
- xkill:关闭图形程序(图形界面之类的)
- killall:结束所有进程
- pgrep 服务名称 :查找服务进程号(pgrep httpd)
- pkill 进程名称 :关闭进程(这个不需要进程号,服务名就可以杀死)
- kill 3576
- -->nice和renice
- nice:
- 指定程序的运行优先级
- 格式:nice -n command
- 例如:nice -5 myprogram
- renice:
- 改变一个正在运行的进程的优先级
- 格式:renice n pid
- 例如:renice -5 777 、renice --5 777 (负5)
- *优先级取值范围为(-20,19),值越小优先级就越大
- -->用户退出后希望进程进一步执行用:nohup
- -->进程的挂起和恢复
- 1进程的中止(挂起)和终止:
- 挂起:Ctrl+Z (就是类似暂停)
- 终止:Ctrl+C (终止当前的运行命令)
- 2查看被挂起的进程 : jobs (查看所有被暂停的服务 )
- 3进程的恢复:
- 恢复到前台继续运行:fg (fg 1 --1表示暂停的编码)
- 恢复到后台继续运行:bg
- -->top
- 作用:进程状态显示和进程控制,没5秒钟自动刷新一次(动态显示)
- 常用选项:
- d: 指定刷新的时间间隔
- c:显示整个命令行而不仅仅显示命令名
- u:查看指定用户的进程
- k:终止执行中的进程
- h or ? :获得帮助
- r:重新设置进程优先级
- s:改变刷新的时间间隔
- W:将当前设置写入~/.toprc文件中
- C:计划任务
- 为什么要设置计划任务:减少一些人为的工作量
- 计划任务的命令
- at :安排作业在某一时刻执行一次
- batch :安排作业在系统负载不重时执行一次
- cron :安排周期性运行的作业
- 一:at命令的功能和格式
- 功能:安排一个或多个命令在指定的时间运行一次
- at的命令格式及参数:
- at [-f 文件名]时间
- at -d or atrm 删除队列中的任务(at -d 4 ---4表示任务的序号)
- at -l or atq 查看队列中的任务
- at命令指定时间的方式:
- 1:绝对计时方法
- midnight noon teatime
- hh:mm[today]
- hh:mm tomorrow
- hh:mm 星期
- hh:mm MM/DD/YY 推荐这个格式
- 2:相对计时方法(自己测试的时候可以用)
- now + n minutes
- now + n hours
- now + n days
- 如:指定在今天下午17:30执行某命令(假设现在时间是下午14:30,2015年4月12日)
- 命令格式如下:
- at 5:30pm
- at 17:30
- at 17:30 today
- at now + 3 hours
- at now + 180 minutes
- at 17:30 15.4.12
- at 17:30 4/12/15
- 实际操作:(比如现在要广播某个文件的内容)
- 先检查下atd进程是否启动:ps -le | grep atd
- 如果没有启动手动启动:/etc/rc.d/init.d/atd start
- wall:广播之前要找到wall的绝对路径,which wall ---查看路径
- 1:at now +5 minutes 回车
- 2:at> /usr/bin/wall < /etc/motd (回车可以写n个命令,注意命令要写据对路径)
- 3:按ctrl+d 保存
- 如果命令很多,可以吧命令写入脚本中
- 用at写的计划任务临时文件都保存在:/var/spool/at/ 目录下
- at配置文件
- 作用:限制那些用户可以使用at命令
- /etc/at.allow
- /etc/at.deny
- 如果/etc/at.allow文件存在,那么只能有列再次文件中的用户才可以使用at命令;
- 若/etc/at.allow文件不存在,则检查/etc/at.deny文件是否存在。若/etc/at.deny存在,
- 则在此文件中列出的用户都不能使用at命令。如果两个文件都不存在,则只有超级用户可以使用
- at命令。如果两个文件都存在而且均为空,则多有的用户都可以使用at命令。
- 二:batch命令
- 作用:安排一个或多个命令在系统负载较轻时运行一次(一般情况下负载较轻指平均负载降到0.8以下)
- 使用方法同at一样,不同的是batch会检测下系统的负载状态。
- 三:crontab命令格式--周期性计划任务(重点)
- 作用:用于生产cron进程所需要的crontab文件
- crontab的命令格式:
- crontab {-l|-r|-e}
- -l 显示当前的crontab(查看定时文件)
- -r 删除当前的crontab(其实可以进入编辑吧对应要删除的去掉就行)
- -e 使用编辑器编辑当前的crontab文件
- crontab文件格式
- minute hour day-of-month month -of-year day-of-week commands
- 其中:
- minute : 一小时的哪一分钟【0-59】
- hour : 一天中的哪个小时【0-23】
- day-of-month :一月中的那一天【1-31】
- month-of-year :一年中的哪一月【1-12】
- day-of-week :一周中的那一天【0-6】
- commands : 执行命令/脚本
- 把知道的具体的时间添上,不知道的都添上*
- 如:分钟 小时 天 月 星期 命令/脚本
- 0 4 * * * etc/leyangjun.sh 明天凌晨4天执行脚本
- 0 18 * * 2,5 xxxx 每个星期二和星期五的18点执行该命令
- 0 18 * 1-3 2,5 xxxx 1-3月之间的星期二星期五的18点执行命令
- 30 17 * * 1-5 /usr/bin/wall < /etc/issue 每周一到周五17:30发个广播
- 45 17 * * 1-5 /sbin/shutdowm -h now 周一到周五17:45关机
- 复杂的:
- (3-6,9-12月,每周一到周五12点到14点,每隔2分钟执行备份,/etc目录备份到 /backup/etc.2015412,备份失败的话保存失败文件)
- */2 12-14 * 3-6,9-12 1-5 /bin/cp -r /etc /backup/etc.2015412 > /backup/etc.bak.err
- 书写注意事项:
- 1:这些项都不能为空,必须填入
- 2:如果用户不需要指定其中的几项,那么可以使用统配符*表示任何时间
- 3:每个时间字段都可以指定多个值,他们之间用逗号间隔
- 4:命令应该给出绝对路径
- 5:用户必须具有运行所对应的命令或程序的权限
- 6:执行crontab之前先看下crond进程是否启动
- ps -le | grep crond
- /etc/rc.d/init.d/crond start 手动启动
- crontab文件建立好以后可以到 /var/spool/cron 目录确认:
- ls /var/spool/cron 可以看到是以用户名来命名
- cat /var/spool/cron/root 就可以看到内容
- ---任务执行完后文件会消失!
- cron配置文件
- 作用:限制那些用户可以使用crontab命令
- /etc/cton.allow
- /etc/cron.deny
- --->进程管理方式
- standalone 独立运行
- 特点:就是系统进程起来后一直会在系统驻留,占用系统cpu和内存资源,在等待监听客户端的请求
- 一旦客服有请求立马给出应答。
- xinetd 进程托管
- atd、crond 计划任务
阅读全文
0 0
- Linux进程管理 详细介绍
- Linux进程管理 详细介绍
- linux进程管理详细解说
- Linux用户管理 详细介绍
- Linux进程管理命令介绍
- Linux进程管理命令介绍
- Linux 查看进程PS命令详细介绍
- Linux apt软件包管理命令详细介绍
- linux 内核介绍2 进程管理
- linux进程的介绍和管理
- 12个Linux进程管理命令介绍
- 26-linux中的进程介绍与管理
- 12个Linux进程管理命令介绍
- 12个Linux进程管理命令介绍
- 12个Linux进程管理命令介绍
- 12个Linux进程管理命令介绍
- 12 个 Linux 进程管理命令介绍
- 12 个 Linux 进程管理命令介绍
- 漫谈千亿级数据优化实践:一次数据优化实录
- MFC之路 第二节 串口通信篇
- ios之常用正则(一)
- nginx中SSI问题的研究
- 算法题目---把数组排成最小的数
- Linux进程管理 详细介绍
- eclipse——配置strust2框架例子
- sudo apt-get install 时意外中断,导致资源加锁
- linux+ant+jmeter+jenkins搭建接口自动化持续集成平台
- 初学者代码基本错误
- 远程桌面连接(Remote Desktop Manager)
- Eclipse中设置方法注释模板并使用方法注释
- webstorem 10的破解地址
- __init__ 与 __del__