linux学习笔记19-管好进程

linux学习笔记19-管好进程

指令

程序:指令的集合。大对数时候被存为可执行文件。相当于菜谱

进程:相当于烹饪的过程,一个运行中的程序就是进程,有可能是多个进程。

我们只需要管理和控制进程,首先需要查看进程状态。process status

由于历史原因,比较复杂,兼容了好几种语法格式

主要是以下2个命令:

ps:

-A显示所有进程

-Af 显示所有进程更加完整的信息(增加UID-用户,PPID-父进程ID, C-CPU占用比例, STIME-进程开始时间)

用kill 【PID】可以结束进程

由于进程比较多,经常与管道一起用:

ps -Af|grep sshd 表示查看进程中包含sshd名称的进程
ps -Af|less 用less命令查看进程详细信息

-Al显示更多的进程相关信息,主要增加了以下信息:

F-进程的旗标

S-进程的运行状态status

PRI-进程优先级

NI-进程的nice值

ADDR-进程在内存的地址

SZ-进程占用的内存大小

WCHAN-进程是否在运行中

top:动态显示进程信息,每3秒刷新一次,

VIRT-表示进程使用的虚拟内存总量单位是kb

RES-表示进程使用的、未被换出的物理内存大小,单位kb

SHR-表示共享内存大小,单位kb

%CPU-表示上次更新到现在cpu时间占用比

%MEM-表示内存占用的百分比

TIME-表示使用cpu时间总计,单位是1/100秒

COMMAND-表示进程是由哪个命令创建

进入top命令时,默认是按照cpu占用率降序显示的

键入M,按照内存占用量降序显示

键入N,按照进程PID降序显示

键入P,按照默认的cpu占用降序显示

键入R,把当前显示的排序反向显示

键入<或>,在当前基础上向左或者右移动一个关键字排序

键入q,退出top命令和视图

操纵进程

kill命令 kill -l 可以列出所有kill的选项

需要了解的:

SIGTERM 序号15,是进程终止的信号,也是kill命令默认发送的信号

SIGKILL 序号9,是进程强制终止信号,

kill 【PID】使用的是默认的15号命令

kill -9 【PID】强制终止 往往会带来一些副作用,丢失数据或者终端异常。所以建议进程的主人和根用户来执行这个sigkill指令

教程的实例是用非root用户打开一个top进程,然后用此用户再开一个terminal来终结这个进程,最后能在非root用户的终端上看到进程“已ShaSi”的现象

ps -Af|grep top #stu用户来执行此命令能够看到所有和top进程相关的进程,筛选出来stu用户打开的top进程,记住pid号
kill 9565 #stu用户在另一个终端使用sigterm来结束这个进程

pkill

根据用户给出的信息终止相关的进程,举例:

pkill opera #把opera所有相关的进程都结束掉
pkill -u stu #把所有的stu用户的进程都结束掉,相当于注销了该用户

xkill

是图形化的终结命令,输入此命令后,鼠标光标变成可以移动的小×,左键点击哪个窗口就结束相应的进程

[stu@localhost ~]$ xkill
Select the window whose client you wish to kill with button 1....

简单管理linux系统服务

前台进程:系统从一个终端接收用户输入,且从这个终端显示输出结果,即:占用终端,此时终端无法执行别的命令

后台进程:系统执行命令后,终端不输出结果,可以执行别的命令。很多进程在一开机就一直在后台,直到关机才会结束。

守护进程:daemons。 这些进程独立于用户终端,周期性进行某种服务,或者等待处理某些事件,不需要用户输入就能运行,在后台为系统和用户提供某种服务,

[stu@localhost ~]$ ps -Af|grep httpd #httpd是Apache为提供http服务器主程序,启动后会后台监听80端口,在接受到客户请求的时候,用相应的网页来响应客户端
stu       10435  10350  0 15:43 pts/0    00:00:00 grep httpd
[stu@localhost ~]$ ps -Af|grep crond #crond是linux上的计划守护进程,启动后每分钟都会检查/etc/crontab配置文件去检查是否有计划任务需要执行
root       2308      1  0 Feb07 ?        00:00:01 crond
stu       10437  10350  0 15:44 pts/0    00:00:00 grep crond

实例:web服务的查看、启动和关闭

linux中最常见和可靠的web服务器就是 Apache Http Server,此进程无需和用户交互,是一个彻底的守护进程。

[root@localhost stu]# service httpd status
httpd 已停
[root@localhost stu]# service httpd start
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [确定]

chkconfig

设置服务开机自启动

[root@localhost stu]# chkconfig --list|grep httpd
httpd          	0:关闭	1:关闭	2:关闭	3:关闭	4:关闭	5:关闭	6:关闭
# 表示httpd服务在0-6这7个运行级别(runlevel)中是关闭状态

0-6这7个运行级别,有3个基本运行级别,有3个其他运行级别,还有1个是保留

运行级别 runlevel

  • 0:关闭或停止系统
  • 1:单用户模式
  • 2:没联网的多用户模式
  • 3:联网的多用户模式
  • 4:保留暂未使用
  • 5:联网并且使用图形界面的多用户模式
  • 6:重启系统

一般的守护进程都需要在运行级别3和5中开机自启动。

[root@localhost stu]# chkconfig --level 35 httpd on
[root@localhost stu]# service httpd status
httpd (pid  10540) 正在运行...
[root@localhost stu]# chkconfig|grep httpd
httpd          	0:关闭	1:关闭	2:关闭	3:启用	4:关闭	5:启用	6:关闭
# 然后重启系统
[root@localhost stu]# service httpd status
httpd (pid  2291) 正在运行...
# httpd服务已经开机自启动了
posted @ 2022-02-10 22:03  ytytytyt  阅读(79)  评论(0)    收藏  举报