程序管理

1、系统服务
对于常驻于内存中的程序我们就称之为服务,系统服务主要分为2类:
  • 系统本身所需要的服务:例如crond及atd,syslog等
  • 网络联机服务:例如Apache等,这些网络联机服务执行后,它们会启动一个负责网络监听的端口,以供客户端调用。

2、Linux的工作管理事项
  • bash只能够管理自己的子程序,及不同的bash只能管理自己的子shell
  • 前景:用户可以直接下达指令的环境就称为前景(控制台)
  • 背景:可以自行工作,无法使用ctrl+c终止,可使用bg/fg切换。背景中执行的工作不能等待用户输入,背景中的工作状态又分为暂停和运行中。

3、工作控制指令
3.1、&
直接将指令丢到背景中执行,使用方式:
用户工作指令 &
如果有些指令有标准输出,则最好使用数据流重定向。

3.2、ctrl z
将当前工作暂停,例如将vi暂停

3.3、jobs
观察目前的背景工作状态
jobs -【lrspn】
-l 列出工作号【+/-】、PID、任务状态和指令串
-r 仅列出正在背景中运行的任务
-s 仅列出在背景中暂停的工作
-p 仅列出任务对应的PID
-n 显示任务状态的变化
注:
①-l参数显示的工作号后显示的+/-号是表示预设的取用工作(也是表明最近一个被放入背景的任务),即如果使用fg指令时,+号的那个任务会被最先拿到前景中处理,-号的那个任务是第二个被拿到前景中处理。超过第二个的任务则没有+/-号显示。
②背景中运行的工作,指令串后面会有一个&符号。

3.4、fg
将背景工作拿到前景中处理
fg %工作号 %可有可无
fg 不带任何参数表示取出+号的任务
fg - 表示取出-号的任务

3.5、bg
将背景中暂停的工作继续运行
bg %工作号 %可有可无

3.6、kill
kill -signal %工作号/PID 不接%默认是PID
kill -l
-l 列出目前kill能够使用的信号
-1/HUP/SIGHUP 重新读取配置文件,类似reload
-2/INT/SIGINT 终止,类似ctrl+c
-3/QUIT/SIGQUIT 平滑终止
-9/KILL/SIGKILL 立刻强制删除一个工作,常用来删除一个不正常的工作
-15/TERM/SIGTERM 正常终止一个工作

3.7、killall
killall 【-iIe】 -signal 指令名
-i 删除前询问
-e 表示后面接的命令名要一致,但不能超过15个字符
-I 忽略指令中的大小写

4、脱机管理工作
前面介绍的背景指的是在终端机模式下可以避免ctrl+c中断的情境,并不是放到系统的背景去,易即如果你是通过远程连接到Linux主机,如果工作还未结束时你脱机了,那么你放入背景的工作也就中断掉了。
为了解决这个问题,既可以使用前面介绍的at或crontab,也可以使用nohup指令。
nohup 指令 & 不加&表示在终端机前景中工作
注:nohup并不支持bash内建指令

5、程序管理
5.1、为什么进行程序管理
  • 操作系统的各项工作是经过PID达成的,程序的执行与权限有关
  • 对于最耗系统的程序,我们需要找出并删除该程序
  • 对于有问题的程序,我们需要找出并删除它
  • 当同时又多个程序要运行时,我们需要确定程序的优先级

5.2、ps
(1)ps是将某个时刻的程序运行状况摘取出来
ps 选项
-e 与-A相同,显示所有程序
-f 做一个更完整的输出
-a 显示当前用户终端机下面的程序
a 显示当前用户终端机下面的程序,包括其他用户
u 显示有效用户的程序
x 显示详细的信息
(2)ps -l
所展示的列:
F 程序旗标,4代表root,1代表仅进行复制,而不实际执行
S 程序状态,R-运行中,S-睡眠中,D-不可被唤醒的睡眠态(例如等待IO),T-停止状态(例如在
背景中被暂停),Z-僵尸进程(程序已经终止但无法被移除到内存外)
UID、PID、PPID
C CPU使用率,单位为百分比
PRI/NI 程序被CPU执行的优先级,数值越小优先级越高
ADDR 指出程序在内存的哪个部分,如果是个运行中程序,一般就会显示“-”
SZ 代表程序占用的内存
WCHAN 表示目前程序是否运行中,“-”表示正在运行
TTY
TIME 程序运行花费的CPU时间
CMD 指令
(3)ps aux
所展示的列:
USER 该程序属于哪个使用者
PID
%CPU
%MEM 该程序所占用的物理内存百分比
VSZ 该程序使用掉的虚拟内存量kb
RSS 该程序占用的固定内存量kb
TTY tty1~tty6代表本机登录,pts/..代表网络连接登录,与终端机无关显示?
STAT 与ps -l的旗标含义相同
START 该程序被触发启动的时间
TIME 该程序实际使用的CPU时间
COMMAND 改程序的指令
注:如果ps展示的某个程序指令后面接了一个<defunct>,则表示是僵尸程序。

5.3、top
(1)动态观察程序变化
top 【-d 秒数】
-d 整个程序画面更新的秒数,默认5秒
top 【-bnp】
-b 以批次的方式执行top,通常搭配数据流重导向将批次结果输出为档案
-n 与-b搭配,意思是需要进行几次top的输出结果
-p 指定某些个PID进行观察监测
(2)在top界面可以输入的按键
显示在top中可以输入的按键
P以CPU的使用资源降序排列
M以内存的使用资源降序排列
N以PID降序排列
T按该程序使用的CPU累加时间降序排列
k给某个PID发送信号
r给某个pid重新设置优先级
q离开top
1多核CPU之间切换查看

5.4、pstree
pstree 【-A|U】 【-up】
-A 程序树之间用ASCII字符连接
-U 程序树之间用Unicode连接
-p 列出程序的PID
-u 列出程序所属用户

5.5、优先级
PRI(new)=PRI(old)+nice
nice取值范围-20~19,实际的PRI还是由系统动态决定的。
(1)nice
新执行的指令给予新的优先级
nice 【-n 数字】 指令
-n 后面接的数字范围-20~19
(2)renice
修改已经存在的程序的优先级
renice 数字 PID

6、观察系统资源
6.1、free
观察内存使用情况
free 【-b|-k|-m|-g】 【-t】
-b,k,m,g 单位,字节,千字节,M,G
Mem显示的是物理内存,SWAP显示的是虚拟内存

6.2、SUID/SGID/SBIT
(1) SUID
当s这个标志出现在文件的x权限上时,例如【-rwsr-xr-x】,此时就被称为Set UID,即SUID。
SUID的限制与功能:
  • SUID权限仅对二进制程序有效
  • 执行者对于该程序要有x的可执行权限
  • 本权限仅在执行该程序的过程中有效
  • 执行者将具有该程序拥有者的权限
(2) SGID
当s这个标志出现在文件的群组的x权限上时,例如【-rwx--s--x】,此时就被称为Set GID,即SGID。
SGID的限制与功能:
  • SGID权限能对二进制程序有效
  • 执行者对于该程序要有x的可执行权限
  • 执行者将具有该程序群组的权限
SGID用在目录上时:
  • 用户若对此目录具有r与x的权限时,该用户能进入此目录
  • 用户在此目录下的有效群组将会变成该目录的群组
  • 用途:若用户在此目录下具有w的权限(新建文件),则使用者所建立的新文件,该新文件的群组与此目录群组相同
(3) SBIT
仅对目录有效:
当用户在该目录下新建文件或目录,则仅有自己与root才有权力删除,无法删除别人的文件或目录。
(4)权限的设定
①SUID-4 SGID-2 SBIT-1
以数字为例,SUID/SGID/SBIT的权限加在所有权限的前面。
例如要设置这样的权限【-rwsr-xr-x】:
chmod 4755 文件名
②S与T
如果档案的拥有者都没有可执行的权限,那么S与T就表示权限是空的,例如7666。
③字符形式
chmod 【u/g+s】 【o+t】 文件
chmod u=rwxs,go=x 文件

6.3、其他指令
  • uname
  • uptime
  • netstat 已停止更新
  • dmesg
  • vmstat

6.4、/proc/*
程序都是在内存中的,而内存中的数据又都是写入到/proc目录下的,每个程序通过PID作为目录区分。而每个PID目录下,最重要的要属以下2个目录:
  • cmdline
  • environ

6.5、fuser
借由文件或文件系统找出正在使用该文件的程序
fuser 【-umv】【-k [i] [-signal]】 文件/目录
-u 列出程序的拥有者
-m 后面接的那个文件名会主动的上提到文件系统的最顶层
-v 列出每个档案与程序还有指令的完整相关性
-k 找出该文件的PID,并向其发送信号

6.6、lsof
列出被程序所开启的文件名
lsof 【-aUu】 【+d】
-u 后接用户名,列出该用户相关程序打开的文件
+d 后面接目录,列出某个目录下被打开的文件
-U 仅列出Unix系统的相关Socket文件
-a 相当于and

6.7、pidof
pidof 程序名
列出程序的PID
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值