进程管理的作用

1)判断服务器的健康状态

进程管理最主要的工作就是判断服务器当前运行是否健康,是否需要人为干预。如果服务器的 CPU 占用率、内存占用率过高,就需要人为介入解决问题了。

2)  查看系统中所有的进程

我们需要查看看系统中所有正在运行的进程,通过这些进程可以判断系统中运行了哪些服务、是否有非法服务在运行。

3)  杀死进程

这是进程管理中最不常用的手段。当需要停止服务时,会通过正确关闭命令来停止服务(如apache 服务可以通过 service httpd stop 命令来关闭)。只有在正确终止进程的手段失效的情况下,才会考虑使用 kill 命令杀死进程。

进程监控和管理

进程启动

前台启动

当用户输入一个命令并运行,就已经启动了一个进程,而且是一个前台的进程,此时系统其实已经处于一个多进程的状态(一个是 Shell 进程,另一个是新启动的进程)。
       假如启动一个比较耗时的进程,然后再把该进程挂起,即将前台运行的进程放到后台,并且暂停其运行。

后台启动

功能: 将命令放入 Bash 后台运行而不影响终端窗口
在命令结尾输入“ &” 符号即可,通过“ &” 放入后台的进程仍然处于运行状态
进程直接从后台运行,用的相对较少,除非该进程非常耗时,且用户也不急着需要其运行结果的时候。

jobs命令-查看后台进程

功能:查看从终端端口放入后台的进程

选项

含义

-l(L 的小写)

列出进程的 PID 号。

-n

只列出上次发出通知后改变了状态的进程。

-p

只列出进程的 PID 号。

-r

只列出运行中的进程。

-s

只列出已停止的进程。

fg命令-前后台进程切换

功能:把后台的进程恢复到前台继续运行

bg命令-前后台进程切换

功能:使后台暂停的进程重新开始运行

ps命令-查看正在运行进程

功能:查看系统中当前有哪些进程,选项非常多

选项 含义

a

显示现行终端机下的所有程序,包括其他用户的程序

e

列出程序时,显示每个程序所使用的环境变量

-f

显示UID,PPIP,C与STIME栏位

f

用ASCII字符显示树状结构,表达程序间的相互关系

-j

采用工作控制的格式显示程序状况

aux 可以查看系统中所有的进程
-le 可以查看系统中所有的进程,而且还能看到进程的父进程的PID和进程优先级
-l 只能看到当前shell产生的进程

pstree命令-查进程树

功能:查看进程间的相关性和依赖关系

选项

含义

-a

显示启动每个进程对应的完整指令,包括启动进程的路径、参数等。

-c

不使用精简法显示进程信息,即显示的进程中包含子进程和父进程。

-n

根据进程 PID 号来排序输出,默认是以程序名排序输出的。

-p

显示进程的 PID。

top命令-监听进程运行状态

功能:查看进程信息的动态变化,默认每隔3秒刷新一次

lsof命令-列出进程调用信息

功能:列举系统中已经被打开的文件;可以根据文件找到对应的进程信息,也可以根据进程信息找到进程打开的文件。

选项

功能

-c 字符串

只列出以字符串开头的进程打开的文件。

+d 目录名

列出某个目录中所有被进程调用的文件。

-u 用户名

只列出某个用户的进程打开的文件。

-p pid

列出某个 PID 进程打开的文件。

nice命令-改变进程优先级

功能:设置进程的优先级(不能修改已运行进程的NI值)

每个进程都有优先级,优先级越高,表示进程越有可能获得CPU的使用权

renice命令-改变进程优先级

功能:调整运行中进程的优先级

普通用户只能调整自己创建的进程的优先级,而且只能把nice调整为更大的值

root用户可以调整所有人的进程优先级,而且可以调整为更小的值

kill 命令-前后台进程切换

功能:通过内核向进程发送信号执行某些特殊的操作,如挂起进程、正常退出进程或强制终止进程等

信号代号

信号名称

说 明

1

SIGHUP

该信号让进程立即关闭.然后重新读取配置文件之后重启

2

SIGINT

程序中止信号,用于中止前台进程。相当于输出 Ctrl+C 快捷键

8

SIGFPE

在发生致命的算术运算错误时发出。不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误

9

SIGKILL

用来立即结束程序的运行。本信号不能被阻塞、处理和忽略。一般用于强制中止进程

14

SIGALRM

时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号

15

SIGTERM

正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9

18

SIGCONT

该信号可以让暂停的进程恢复执行。本信号不能被阻断

19

SIGSTOP

该信号可以暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

进程优先级

在 Linux 系统中,表示进程优先级的有两个参数:Priority(PRI) 和 Nice(NI), 其数值越小代表该进程越优先被 CPU 处理。

PRI是由内核动态调整的,用户不能直接修改

NI用户可以修改

PRI和NI的关系:PRI (最终值) = PRI (原始值) + NI修改值(NI 的值就可以改变进程的优先级即可。NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理;)

任务调度管理

at命令

功能:设置在指定的时间执行某个一次性任务

选项

含义

-m

当 at 工作完成后,无论命令是否输出,都用 E-mail 通知执行 at 命令的用户。

-c 工作标识号

显示该 at 工作的实际内容。

-t 时间

在指定时间提交工作并执行,时间格式为 [[CC]YY]MMDDhhmm。

-d

删除某个工作,需要提供相应的工作标识号(ID),同 atrm 命令的作用相同。

-l

列出当前所有等待运行的工作,和 atq 命令具有相同的额作用。

-f 脚本文件

指定所要提交的脚本文件。

crontab命令

功能:设置需要周期执行的任务

选项

功能

-u user

用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo
用户的 crontab 服务,此选项一般有 root 用户来运行。

-e

编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。

-l

显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。

-r

从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。

-i

在删除用户的 crontab 文件时,给确认提示。

特殊符号

含义

*(星号)

代表任何时间

第一个"*"  一小时当中的第几分钟(minute)  0~59

第二个"*"  一天当中的第几小时(hour)  0~23

第三个"*"  一个月当中的第几天(day)  1~31

第四个"*"  一年当中的第几个月(month)  1~12

第五个"*"  一周当中的星期几(week)  0~7(0和7都代表星期日)

,(逗号)

代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。

-(中杠)

代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。

/(正斜线)

代表每隔多久执行一次。比如"*/10****命令",代表每隔 10 分钟就执行一次命令。

进程与文件权限

进程的权限

1)和普通文件类似,进程也有所有者和属组两个属性

2)进程的所有者就是创建进程的用户,也称为执行者

3)进程的属组是执行者所属的用户组。

4)进程对文件的操作权限按照以下规则确定:

如果进程的所有者与文件的所有者相同,就为进程赋予文件所有者的权限

如果进程的所有者属于文件的属组,就为进程赋予文件属组的权限

为进程赋予其他人的权限

文件特殊权限

特殊权限有三位:用户置位s(SUID)、组置位s(GUID)和粘着置位t(Sticky)

设置方法:

数字形式修改权限时setuid、setgid、sticky的八进制位分别是4000、2000、1000。

字母形式则分别为u+s,g+s,o+t,(删除标记位是u-s,g-s,o-t)

表示上有大小写之分

如果同时开启执行权限和特殊权限,则权限表示字符是小写。

如果关闭执行权限,开启特殊权限,则权限表示字符是大写。

拥有特权的含义:

suid/sgid程序:当SUID位被设置时,进程继承了命令拥有者的权限。

程序的t属性:内存中保存一份运行程序的备份

目录的s属性:在该目录下创建的任何文件及目录属于该目录所拥有的组。

目录的T属性:设置了目录的T属性后1000,由只有该目录的所有者及root才能删除该目录,         如/tmp目录就是drwxrwxrwt。

SUID

Set UID(简称为SUID):在所有者的执行权限位置上出现了之前从未讲过的s标志

只能对二进制程序文件设置SUID权限,对Shell脚本文件和目录不起作用

执行设置了SUID权限的程序文件时,进程的所有者变为原程序文件的所有者,而不是执行程序的用户,也可以理解为执行者继承了文件所有者的权限

前提是用户对该程序文件具有执行权限

SBIT

Sticky Bit(简称为SBIT或粘滞位):出现在目录的其他人的执行权限位置上的t标志

只能对目录设置SBIT权限

用户在目录中新建的文件和目录,只有该用户本身和root用户能够删除

SBIT权限生效的前提是用户对目录具有执行和写权限

管理进程和任务调度管理相关推荐

  1. 【Linux 内核】进程管理 ( 进程与操作系统 | 进程与程序 | 进程与线程 | 虚拟地址空间 )

    文章目录 一.进程与操作系统 二.进程与程序 三.进程与线程 四.虚拟地址空间 一.进程与操作系统 操作系统与硬件的关系 : 操作系统 使用 硬件 提供的资源 , 如 CPU , 内存 , 磁盘 , ...

  2. 面试-操作系统-进程管理-进程-进程调度-死锁

    文章目录 ==概念== 备注 简单说下你对并发和并行的理解? 同步.异步.阻塞.非阻塞的概念? 操作系统概念? 一个程序从开始运行到结束的完整过程,你能说出来多少? 用户态和内核态是如何切换的? 什么 ...

  3. Linux如何管理进程

    一.程序 是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具 用于描述进程要完成的功能,是控制进程执行的指令集 二.进程 1.什么是进程 运行中的程序的一个副本,是被载入 ...

  4. php 进程管理,php如何管理进程

    进程管理-防止进程成为僵尸进程 创建好了进程,那么怎么对子进程进行管理呢? 使用信号,对子进程的管理,一般有两种情况:(推荐学习:PHP编程从入门到精通) posix_kill():此函数并不能顾名思 ...

  5. 如何在 Linux 上使用 kill 和 killall 来管理进程

    了解如何使用 ps.kill 和 killall 命令来终止进程并回收系统资源. 在 Linux 中,每个程序和守护程序daemon都是一个"进程process". 大多数进程代表 ...

  6. 在Docker里使用(支持镜像继承的)supervisor管理进程(转)

    这篇文章是受 dockboard 之托帮忙翻译的与 docker 有关的技术文章.译自 Using Supervisor with Docker to manage processes (suppor ...

  7. Linux基础:调查和管理进程

    什么是进程? 进程是被载入内存的一个指令集合 进程ID(Process ID,PID)号码被用来标记各个进程 UID.GID相关权限和 SElinux决定对文件系统的存取和访问 通常从执行进程的用户处 ...

  8. Linux进程查看与管理

    Linux进程查看与管理(2) htop: 交互式命令: u: 过滤 s:跟踪选用的进程所发起系统调用 l:显示选定进程所打开的文件 t:显示进程的层次数 a:设定进程的cpu亲缘性:(将选定的进程绑 ...

  9. Unix进程和线程管理及其异同

    Unix进程和线程管理及其异同 一,进程 1,什么是进程 在最初的单处理器系统中,系统中的多道程序按照一定规则切换而实现多任务处理,后来发现多个程序并发导致系统资源被共享,为了描述和管理程序对共享资源 ...

最新文章

  1. 机器学习项目模板:ML项目的6个基本步骤
  2. 分布式关系数据库在金融行业的创新实践
  3. USEARCH —— 最简单易学的扩增子分析流程
  4. 剑指Offer——Java答案
  5. HTML5+PhoneGap相机拍照
  6. Unity UGUI——Rect Transform包裹(Anchor Presets)
  7. spyder 护眼背景
  8. 论文浅尝 | 二维卷积知识图谱嵌入
  9. linux内核怎么修改屏幕旋转方向_运维必备:常见的Linux系统故障及其排查的方法...
  10. 35岁的程序员,真的要转管理吗?
  11. 你还在代码里做读写分离么,试试这个中间件吧!
  12. Mac OSX操作系统安装和配置Zend Server 6教程(1)
  13. 详细解读ORBSLAM中的描述子提取过程
  14. 基于蒙特卡洛模型的排队问题求解
  15. RapidMiner教程
  16. 周立功专访:周立功和他的团队已经找到了属于自己的道路
  17. linux pam鉴定令牌错误,linux – chsh:PAM身份验证失败
  18. 淘宝API,商品详情的测试及使用
  19. Android ShapeableImageView使用详解,告别shape、三方库
  20. 数字-数字编码和模拟-数字编码

热门文章

  1. Unity商业开发必备插件
  2. (转载)魔兽世界任务制作教学
  3. R语言使用car包的vif函数计算方差膨胀因子,并基于方差膨胀因子开方后和阈值(2)的判断来确认模型特征(预测变量)之间是否存在多重共线性(Multicollinearity)
  4. 熬夜帮学姐用Python完成词云图,没想到我好兄弟竟然...
  5. EZDML3.31发布 支持从数据库获取测试数据
  6. 计算机网络sequence number,TCP协议中SequenceNumber和Ack Numbe
  7. linux指纹登录实现原理,指纹识别技术原理与基于Linux系统的指纹识别门禁系统设计...
  8. 汽车电子 CCP学习
  9. iatf16949内审员_IATF16949:2016汽车质量管理体系内审员
  10. idea解决搜狗输入法不跟随BUG