Linux的进程管理和作业控制


read命令的用法:

read 选项 变量  #read实现的作用是将从键入的字符串赋值给变量

-p 在键入命令之前先显示一段字符

-t 等待用户输入的超时时间

-a 将键入的数据赋值给数组

 

变量的拓展:

$?:用于存放最后一次命令执行的返回值,将每个变量作为一个字段添加分隔符

$*:用于引用所有变量的参数,将所有的字段看作为一个字段加入分隔符

$@:用于引用所有变量的参数
$#
:显示命令项脚本传入参数的个数
$0
:显示脚本的当前名字以及路径

$$:查看自身命令的进程
$!
:查看最后一次执行在后台的进程号
$_
:引用最后一次执行完毕的结果
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

脚本退出命令exit

exit + 返回值   #从脚本退出并将返回值设定为后跟的数

 

一个简单的用于脚本生成的脚本:

文件名 nsh

  1 #!/bin/bash 

  2 #

  3 ls $1 &> /dev/null && vim $1

  4 ls $1 &> /dev/null ||cat> $1 <<EOF

  5 #!/bin/bash

  6 #:Title:

  7 #:Synopsis:

  8 #:DateTime:`date +"%F %T"`

  9 #:Version:Unknow

 10 #:Author: RedHat_hu

 11 #:Option:None

 12

 13 EOF

 14 vim +8 $1

 15 chmod +x $1

使用方法:nsh 脚本名

说明:

<!--[if !supportLists]-->1.       <!--[endif]-->shbang

<!--[if !supportLists]-->2.       <!--[endif]-->判断新建的脚本名是否存在,若存在,则使用vim打开此文件

<!--[if !supportLists]-->3.       <!--[endif]-->若不存在,则向其中导入4~11行内容

<!--[if !supportLists]-->4.       <!--[endif]-->导入后使用vim打开新脚本,并将光标定位在新脚本的第八行

<!--[if !supportLists]-->5.       <!--[endif]-->新脚本退出vim后赋予可执行权限

 

linux进程管理:

进程:是计算机分配系统资源的基本单位

linux中进程优先级分为:静态优先级 100~139(可人为控制),动态优先级 0~99(有kernel控制)。(优先级越小则越高)

对静态有限的控制由nice值来实现,nice取值范围-20~19与静态优先级100~139一一对应,进程启动默认nice0,给出让出cpu使用权的进程,nice值上升,优先级下降。

 

进程查看相关命令:

ps命令

ps option

-e 显示所有进程

-a 显示与终端无关的进程

-x 显示与终端有关的进程

-u 显示进程的发起者

-o 自定义显示哪些字段

常用ps aux

 

top option以动态的形式显示当前进程的数据

-b batch mode以文本的方式显示进程数据

-d delay time动态的刷新时间

-n 显示次数

 

pgrep option processname

无选项默认输出进程pid

-u 查看进程发起者的uid

-g 查看进程发起者的gid

 

pidof processname

查看某进程的进程号

 

pstree 显示所有进程的进程树

-p 显示pid

 

与进程显示相关的字段

PID:进程号

PPID:父进程号(所有进程都有init进程派生)

TTY:标示进程与哪个终端相关

STAT:进程的状态

       D:不可中断的睡眠状态,例如I/O操作中

       R:运行/就绪态

       S:可中断的睡眠态

       Tstop停止态

       Z:僵尸态(进程结束但是尚未释放资源)

<!--[if !supportLists]-->1、  <!--[endif]-->当前进程处于结束中,其父进程正在为其清理占用资源

<!--[if !supportLists]-->2、  <!--[endif]-->子进程结束时发现父进程在其之前结束,无法清理释放占用资源

TIME:进程获得CPU的时间

COMMAND:进程的发起命令

%CPU:进程的cpu占用率

%MEN:进程的内存占用率

VSZ:进程在虚拟内存集中的占用大小

RSS:进程在物理内存集中的占用大小 

进程间通信机制:IPC主要分为共享内存和信号量的进程间发送。 

信号量控制命令kill

kill option SIG pid

-l 查看所有的信号量

信号量:

1SIGHUP    若进程是服务发送此信号量重载配置文件

2SIGINT    结束当前作业ctrl+c

9SIGKILL   强行杀死进程

15SIGKTERM    结束进程,让进程自行关闭

18SIGCONT      将停止的进程继续

19SIGSTOP       将运行进程停止 

killall 进程名

杀死所有与进程名相关的进程 

nice值的修改

nice命令启动进程时制定nice

nice –n 数值 命令  设定命令运行时初始值

renice 数值 进程号      设���运行中的进程nice 

作业控制:

作业分为前台作业和后台作业,以是否占用shell来区分。

将命令启动即放入后台执行:

命令 &

nohup命令可以实现关闭终端后命令仍执行 

前台、后台切换

ctrl+z 将当前作业送入后台并停止

fg 作业号 #将作业从后台调入前台

bg 作业号 #将前台作业调入后台并运行,将后台作业从停止转为运行

kill %作业号 #杀死作业 (默认15 

free显示内存信息(默认以K为单位)

-m 以兆为单位显示 

uptime显示启动时间以及平均负载 

vmstat 时间(秒) 显示内存信息,按秒数刷新

相关内容