Welcome 微信登录

首页 / 操作系统 / Linux / Linux 进程管理 [screen/ps/kill]

进程管理

进程的重要性:  我们在使用操作系统时,各项作业都是通过某个PID来执行的,因此,是否要执行某项作业就与该进程的权限相关  如果Linux系统很忙碌,当整个系统资源快要用完的时候,怎么找到大量占用系统资源的进程,删除该进程,让系统恢复正常  如果由于进程写的不好,导致内存中产生有问题的进程,怎么找到它,然后删除呢?  同时在系统中运行5--6项作业,但其中有一项作业才是最重要的,如何让那一项重要的作业优先执行呢?  我们在操作的时候经常会碰到这样的问题 在同一个登录界面不退出怎么复制文件到另一个文件、不退出当前进程怎么去查看另一个文件,在说进程管理之前说一下 
作业管理(job control):每个作业都是当前bash的一个子程序,彼此间是有关联的,所以我们无法用管理作业的方式由tty1的环境去管理tty2的bash。在进行bash作业管理时,必须要注意到的限制:1)程序必须是shell的子程序; 2)程序不能等待terminal/shell 的输入在bash环境下,“前台”和“后台”我们可以这样理解,前台(foreground)即为 你可以操控的作业 ,后台(background)指在内存中自动运行的进程,无法直接接触,要控制就需要用到作业/系统调用如何将作业放到后台呢?可以使用“&”e.g.   我们要将/etc/备份为/tmp/etc.tar.gz 同时,又想进行其他的操作,可以这样做:
  1. tar -xpcf /tmp/etc.tar.gz /etc/ &  
1. screen 屏幕切换使用ssh远程连接 linux服务器工作的时候,比如需要编译某些程序而这时网络不稳定断线, 工作就白干了, 又的重新连接重复刚才的工作,这时候screen就可以派上用场了。
养成好习惯多用 screen!
 1).安装screen  
---------------------------------
yum install screen
 --------------------------------
 2).运行 screen
--------------------------------
screen
 --------------------------------
 3).用法
Ctrl+a 然后按c 建立一个新的screen 会话
Ctrl+a 然后按n 跳转到下一个screen 会话
Ctrl+a 然后按p 返回到上一个screen 会话
Ctrl+a 然后按d 将当前的screen 会话放在背景执行      // 返回到最开始的工作环境
Ctrl+a 然后按(大写)S 分离一个screen 会话出来,分离后用Ctrl+a 然后按tab键 在分离出来的各screen间跳转。
screen -ls 列出当前所有的screen会话
screen -r 进程号 之前Ctrl+a 然后按d 放在背景执行的会话 呼叫回来。
ssh中如果发生了突然断线 那么你重新登陆后 screen -ls 会发现 有screen的状态是处于(Attached)状态 此刻我们使用 screen -d 将他强行放到背景,然后再用screen -r 进程号将他呼叫回来。
如果 screen -ls 看到有死亡的会话 可以用screen -wipe 进程号 将他杀掉。
 e.g.
#screen -list可以看到正在运行的screen实例
There is a screen on:
80338.ttyp3.chh (Detached)
1 Socket in /tmp/screens/S-chh.
返回screen -r 80338
彻底退出:#exit2. ctrl+[z]将“当前”作业放到后台“暂停”3. fg将后台作业拿到前台处理
4. bg将前台作业拿到后台运行5. &  直接将命令放到后台“执行”6. jobs观察作业状态观察进程运行情况:
ps
查看进程:
  ps: process 查看 庞大而古老的一个指令 

参数:    进程相关和进程无关 后台进程和终端无关 如:打开电脑输出的提示信息  
  跟终端相关的进程:用户的默认SHELL 发起 附属于领头SHELL 进程
-e/A:显示所有进程 能显示有关和无关的进程 a: 跟终端无关的所有进程 a 和 x 是关于BSD的
 x: 跟终端有关
-u: 显示进程是由哪个用户发起
-F: 显示额外信息
j: jobs work
h:进程间的关系 采取缩进的方式
-o:自己定义显示那些字段 用逗号隔开

常见的查看进程组合
e.g.ps aux                                 // 这命令比较常用
ps axjf                                 // 这两命令比较常用
ps -ef
ps ejh   
ps -eo pid,%cpu,comm    
//分段查看
ps信息显示常见5段分析: ps 为双向循环列表
1 PID:             进程号 计算机通过结构体表示每一个进程 task_structure; 由堆和进站给出
2 PPID:          父进程进程号
3 tty :               与进程相关的内容
4 STAT:          进程状态
5 time:            处理时间  
6 command: 发起的进程 
ps -l[root@node1 ~]# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 12559 12557 0 75 0 - 1160 wait pts/0 00:00:00 bash
4 R 0 20121 12559 0 77 0 - 1054 - pts/0 00:00:00 ps
F :表示这个进程的标志位(flag), 4 表示用户为超级用户
S :表示这个进程的状态 (stat)
C :cpu 使用的的只有百分比
PID /PPID: 很常见的进程和父进程
NI :nice 值 用于修改进程优先级
ADDR: 核心功能,指出该进程在内核的那一部分,怎么运行
SZ: 用掉的内存大小
WCHAN: 当前进程是否在运行 - 表示正在运行
TTY :终端位置
TIME :用掉的CPU时间
CMD: 所执行的命令
特别说明:由于ps 能够支持的OS类型相当多,所以它的参数非常多,而且 是否加 “-” 也回有很大的差别(BSD中 一般不需要加-)具体该怎么操作呢? 参考 man pstop
格式: top [-d] | top [-bnp]
参数:-d: 更新的秒数。 默认5秒-b: 以批处理的方式执行top 在top执行过程中可以使用下列按键查看命令:?: 显示在top中可以输入的按键命令
P:按CPU的使用资源排序显示
M:按内存的使用资源排序显示
T:按该进程的时间积累(TIME+)排序
k: 给某个PID一个信号 
r: 给某个PID重新确定一个值
  • 1
  • 2
  • 下一页
RedHat Linux 9.0 下 Samba研究心得Linux input子系统分析相关资讯      Linux知识 
  • 时光总是太匆匆!Linux已经诞生23  (08/29/2014 14:12:03)
  • Linux虚拟文件系统之文件打开(sys  (02/14/2012 11:41:54)
  • 2012 年 Linux 峰会时间表  (02/14/2012 06:47:27)
  • 报告称当前 Linux 人才抢手 高薪也  (02/15/2012 06:35:56)
  • 解析企业为何选择Linux及其特别之  (02/14/2012 08:17:59)
  • Linux禁用字符闪烁的方法  (11/02/2011 10:28:25)
本文评论 查看全部评论 (0)
表情: 姓名: 字数