、工作管理

1、前台程序放后台程序  命令后 加  &

2、任务执行时将前台任务任务放到后台中并【暂停】  ctr + z

3、jobs 观察后台工作状态 及多少任务在执行,可以通过 help jobs查看jobs选项

  [root@linux ~]# jobs [-lrs]
  参数:
  -l :除了列出 job number 之外,同时列出 PID
  -r :仅列出正在背景 run 的工作;
  -s :仅列出正在背景当中暂停 (stop) 的工作。
  范例:
  范例一:观察目前的 bash 当中,所有的工作,与对应的 PID
  [root@linux ~]# jobs -l
  [1]+ 24988 Stopped /usr/bin/vim ~/.bashrc
  [2]- 25006 Stopped /usr/bin/vim ~/.bash_history

4、后台工作放前台 fg + %number

5、前台工作放后台后暂停,让后台工作重新运行 bg %number

6、管理后台程序  kill

[root@linux ~]# kill -signal %jobnumber
[root@linux ~]# kill -l
参数:
-l :这个是 L 的小写,列出目前 kill 能够使用的讯号 (signal) 有哪些?
signal :代表给予后面接的那个工作什么样的指示啰!用 man 7 signal 可知:
-1 :重新读取一次参数的设定档 (类似 reload);
-2 :代表与由键盘输入 [ctrl]-c 同样的动作;
-9 :立刻强制删除一个工作;
-15:以正常的程序方式终止一项工作。与 -9 是不一样的。
范例:
范例一:找出目前的 bash 环境下的背景工作,并将该工作删除。
[root@linux ~]# jobs
[1]+ Stopped vim bashrc
[root@linux ~]# kill -9 %1
[1]+ 已砍掉 vim bashrc
范例:找出目前的 bash 环境下的背景工作,并将该工作终止掉。
[root@linux ~]# jobs
[1]+ Stopped vim bashrc
[root@linux ~]# kill -SIGTERM %1
[1]+ 终止 vim bashrc
# -SIGTERM 与 -15 是一样的!您可以使用 kill -l 来查阅!

网页给出杀死进程的多种方法:http://blog.csdn.net/andy572633/article/details/7211546

关于信号的信息可以参考网页:http://www.xuejiehome.com/blread-1596.html

2、 程序观察

静态ps以及动态top来观察程序的运行,以及使用pstree来查看程序之间的联系

了解ps的使用,可以使用info ps来具体查看ps的信息

ps 的参数有

[root@linux ~]# ps aux
[root@linux ~]# ps -lA
[root@linux ~]# ps axjf
参数:
-A :所有的 process 均显示出来,与 -e 具有同样的效用;
-a :不与 terminal 有关的所有 process ;
-u :有效使用者 (effective user) 相关的 process ;
x :通常与 a 这个参数一起使用,可列出较完整信息。
输出格式规划:
l :较长、较详细的将该 PID 的的信息列出;
j :工作的格式 (jobs format)
-f :做一个更为完整的输出。
特别说明:
由于 ps 能够支持的 OS 类型相当的多,所以他的参数多的离谱!
而且有没有加上 - 差很多!详细的用法应该要参考 man ps 喔!

常用的操作ps有 ps aux

范例二:列出目前所有的正在内存当中的程序:
[root@linux ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1740 540 ? S Jul25 0:01 init [3]
root 2 0.0 0.0 0 0 ? SN Jul25 0:00 [ksoftirqd/0]

我们必须要知道的是『疆尸 (zombie) 』程序是什么? 通常,造成疆尸程序的成因是因为该程序应该已经执行完毕,或者是因故应该要终止了, 但是该程序的父程序却无法完整的将该程序结束掉,而造成那个程序一直存在内存当中..... 如果您发现在某个程序的 CMD 后面还接上 <defunct> 时,就代表该程序是疆尸程序啦

top

top 也是个挺不错的程序观察工具!但不同于 ps 是静态的结果输出, top 这个程序可以持续的监测 (monitor) 整个系统的程序工作状态,例如上面的范例一所示啊! 在预设的情况下,每次更新程序资源的时间为 5 秒,不过,可以使用 -d 来进行修改。

[root@linux ~]# top [-d] | top [-bnp]
参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
P :以 CPU 的使用资源排序显示;
M :以 Memory 的使用资源排序显示;
N :以 PID 来排序喔!
T :由该 Process 使用的 CPU 时间累积 (TIME+) 排序。
k :给予某个 PID 一个讯号 (signal)
r :给予某个 PID 重新制订一个 nice 值。
范例:
范例一:每两秒钟更新一次 top ,观察整体信息:
[root@linux ~]# top -d 2

top - 18:30:36 up 30 days, 7 min, 1 user, load average: 0.42, 0.48, 0.45
Tasks: 163 total, 1 running, 161 sleeping, 1 stopped, 0 zombie
Cpu(s): 4.7% us, 4.0% sy, 6.3% ni, 82.5% id, 0.4% wa, 0.1% hi, 2.0% si
Mem: 1033592k total, 955252k used, 78340k free, 208648k buffers
Swap: 1052216k total, 728k used, 1051488k free, 360248k cached
<==如果加入 k 或 r 时,就会有相关的字样出现在这里喔!
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3981 apache 34 19 84012 11m 7352 S 17.3 1.2 0:00.09 httpd
1454 mysql 16 0 289m 40m 2228 S 3.8 4.0 115:01.32 mysqld
3985 dmtsai 15 0 2148 904 668 R 3.8 0.1 0:00.03 top
1 root 16 0 3552 552 472 S 0.0 0.1 0:08.90 init
2 root RT 0 0 0 0 S 0.0 0.0 0:52.76 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:03.01 ksoftirqd/0

kill 后面接%jobnumber或者后面直接接pid 杀死某一个进程

kill all 将下达指令的名称的进程杀死

killall -9 httpd               #将以httpd命名的进程杀死

free [-b|-k|-m|-g] [-t]   #显示系统的版本内核等信息
参数:
-b :直接输入 free 时,显示的单位是 Kbytes,我们可以使用 b(bytes), m(Mbytes)
k(Kbytes), 及 g(Gbytes) 来显示单位喔!
-t :在输出的最终结果,显示物理内存与 swap 的总量。

uname [-asrmpi]           #显示系统版本信息
参数:
-a :所有系统相关的信息;
-s :系统核心名称
-r :核心的版本
-m :本系统的硬件名称
-p :CPU 的类型
-i :硬件的平台 (ix86)

uptime    #就是显示出目前系统已经开机多久的时间

sar           [-ru] [秒数] [次数]   #主动侦测主机资源的使用情况
参数:
-u :进行 CPU 资源的统计;
-r :进行主存储器目前状态的分析

3、关于程序的顺序执行利用ps -l可以查看当前环境进程信息,为了是使得各程序的运行合理,系统为每个进程都分配优先级,用户可以通过nice这个参数为某个进程调整优先级,

nice影想程序的优先级,PRI(new) = PRI(old) + nice,数字越小代表优先级越高。

• 一般使用者的 nice 值为 0 ~ 19 ;
• root 可用的 nice 值为 -20 ~ 19 ;

  一开始执行程序就立即给予一个特定的 nice 值:用 nice 指令;
      调整某个已经存在的 PID 的 nice 值:用 renice 指令。

nice [-n] command        #调用nice函数

整个nice的操作是在父子进程之间进行传递的,父进程的nice改变,相应的子进程的nice值也发生改变。

linux学习笔记--程序与进程管理的更多相关文章

  1. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  2. Linux学习笔记之rpm包管理功能全解

    0x00 软件包管理器 所有的软件都是由文件格式的程序代码(即源代码),经过编译成为一个可执行二进制文件:对于一个软件来说,其包含二进制程序.库文件.配置文件以及帮助文件.在应用中,每次要安装程序时通 ...

  3. linux学习笔记----文件与目录管理

    一.目录处理命令 cd:切换目录 pwd:显示当前目录 mkdir:新建一个新的目录 rmdir:删除一个空的目录 1)pwd:显示当前目录 pwd [-P] P:显示出当前的路径,而非使用连接(li ...

  4. C++学习笔记42:进程管理

    子进程异步清除 SIGCHLD信号:子进程终止时,向父进程自动发送,编写此信号处理例程,异步清除子进程 #include <signal.h> #include <string.h& ...

  5. linux 学习笔记之文件与管理

    前言: 对于windows来说,文件的系统管理都是非常简单的(这个应该有一个捂脸),通常就是重命名,复制,移动,删除,查看文件属性,查看文件内容,寻找文件.其实在图形化行中的linux也是有这样子功能 ...

  6. linux学习笔记二-----文件权限管理

    一.分析文件权限(ln -s 文件名 快捷方式名 用来创建文件的快捷方式,下方ll查看信息时会在第一个字符处显示l) [hjp@bogon ~]$ ll total 4 drwxrwxr-x. 2 h ...

  7. Linux学习笔记(六) 进程管理

    1.进程基础 当输入一个命令时,shell 会同时启动一个进程,这种任务与进程分离的方式是 Linux 系统上重要的概念 每个执行的任务都称为进程,在每个进程启动时,系统都会给它指定一个唯一的 ID, ...

  8. Linux学习笔记(五) 账号管理

    1.用户与组账号 用户账号:包括实际人员和逻辑性对象(例如应用程序执行特定工作的账号) 每一个用户账号包含一个唯一的用户 ID 和组 ID 标准用户是系统安装过程中自动创建的用户账号,其中除 root ...

  9. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

随机推荐

  1. Eclipse在Debug模式下经常进入ThreadPoolExecutor解决办法

    1.进入Window-->搜索:debug

  2. MyEclipse与Eclipse配置清单

    MyEclipse与Eclipse配置清单 1.编码设置    workspace -> 设置全局编码utf-8    修改JSP编码(Encoding)为UTF-82.Java配置    格式 ...

  3. Modbus库开发笔记之一:实现功能的基本设计(转)

    源: Modbus库开发笔记之一:实现功能的基本设计

  4. 控制层和ajax用法的详解

    商城项目第二天复习的内容 package cn.tedu.store.entity; public class ResponseResult<T> { public static fina ...

  5. Python 一些有趣的技巧,包括协程例

    1. 路径操作 比起 os 模块的 path 方法,python3 标准库的 pathlib 模块的 Path 处理起路径更加的容易. ####获取当前文件路径 前提导入 os 和 pathlib 包 ...

  6. python面向对象三大特性之一继承、多态、封装

    继承,即在定义一个类时,以另一个类为参数,则称这个新定义的类继承了参数类,父类又称为基类. 单继承表示只继承一个类,多继承表示继承多个类. class parent1: pass class pare ...

  7. The POM for XXX is invalid, transitive dependencies (if any) will not be available解决方案

    今天,某个开发的环境在编译的时候提示警告The POM for XXX is invalid, transitive dependencies (if any) will not be availab ...

  8. centos 6.5 gdb 7.10安装make[5]: *** [install-bfdincludeHEADERS] Error 1解决

    make[5]: *** [install-bfdincludeHEADERS] Error 1make[5]: Leaving directory `/usr/local/gdb-7.10/bfd' ...

  9. Java 判断字符串是否为空的四种方法、优缺点与注意事项

    以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s));方法二: ...

  10. Codeforces 40E Number Table - 组合数学

    题目传送门 传送门I 传送门II 题目大意 给定一个$n\times m$的网格,每个格子上要么填$1$,要么填$-1$,有$k$个位置上的数是已经填好的,其他位置都是空的.问有多少种填法使得任意一行 ...