进程的概念

1. 在linux系统中,每一段执行的程序都称为一个进程,被分配一个进程编号(id)。

2. 每个进程都对应一个父进程,一个父进程可以复制多个子进程。

3. 一个进程可能以两种方式存在:前台和后台。前台是指用户在屏幕上可以进行操作的,后台是指屏幕上看不到的实际操作。

4. 一般系统的服务都是以后台进程的方式存在,并且常驻系统中,直到关机才结束。

进程操作命令

1. 查看正在执行的所有进程

ps [-aux] [| more]

其中,-a表示显示当前所有进程,-u表示以用户格式显示进程,-x表示显示进程运行的参数。

上述三个参数一般都是要使用的。如果想分页显示,后面加 | more。

2. 根据命令查询特定的进程

ps -aux | grep instruction [| more]

其中,instruction为命令名称。例如,要查看正在执行的sshd进程,ps -aux | grep sshd。

3. 查看进程及其父进程

ps -ef [| more]

该命令会以全格式显示当前所有进程,比上述命令多一行PPID,即父进程的id。

例如,要查询sshd进程的父进程,ps -ef | grep sshd。

4. 终止进程

kill [-9] pid

其中,pid为要终止的进程编号;-9表示强制终止,用于某些核心进程(例如终端bash)。

5. 批量终止进程

killall pname

其中,pname为进程名称,支持通配符,这在系统因执行多个同类型进程变慢时很有用。

6. 以树状结构显示当前进程

pstree [-pu]

其中,-p表示显示进程编号,-u表示显示进程所属的用户。如下图所示:

7. 动态监控进程

top [-i] [-d n] [-p pid]

交互操作:P(按占用cpu比例排序)、M(按占用内存排序)、N(按进程编号排序)、u(只监控某个用户)、k(结束进程)、q(退出)。

这个命令跟ps很相似,区别是可以定时(默认3秒)刷新,支持交互操作。其中,-i表示只显示正在运行的进程;-d用于指定刷新时间间隔(n秒);-p用于指定进程编号,只监控编号为pid的进程。

进程操作示例

1. 踢掉某个非法登录的用户

(1)查询正在执行的sshd进程:ps -aux | grep sshd。

(2)将正在登录的dubhlinn用户踢掉,即终止进程19477:kill 19477。

(3)dubhlinn用户会被强制退出,并提示:Connection to xxx closed by remote host.

2. 批量关闭已经打开的多个gedit编辑器

killall gedit

3. 强制关闭终端

(1)查询已经打开的终端:ps -ef | grep bash

(2)关闭用户dubhlinn的终端:kill 20642,发现没有反应,因为终端是重要进程,会绕开kill命令,必须强制关闭。

kill -9 20642,终端被关闭。

进程列表简介

通过ps -aux命令可以以列表形式显示当前进程的详细信息,那么这些列代表什么呢?

USER:进程所属的用户名;

PID:进程编号

%CPU:占用CPU的比例

%MEM:占用内存的比例

VSZ:占用虚拟内存的大小

RSS:占用物理内存的大小

TTY:终端名称

STAT:进程状态,S为睡眠,R为正在执行,Z为僵死,D为短期等待,N表示优先级低于普通进程

START:进程的启动时间

TIME:进程使用CPU的总时间

COMMAND:进程的命令名称和参数

服务的概念

linux系统的服务(service)本质是一种运行在后台的进程,监听某个端口,等待其他应用的请求。例如,sshd服务监听22端口,mysql服务监听3306端口,tomcat服务监听8080端口等。另一台电脑的终端可以通过22单口连接linux服务器的sshd服务,navicat可以3306端口连接服务器的mysql服务,浏览器可以通过8080端口连接服务器的tomcat服务。

服务操作命令

在CentOS7中,服务操作命令跟以往的版本有很大不同,用systemctl代替了原来的service。

1. 查看一个服务的当前状态

systemctl status name.service

其中,name为服务名称。

2. 开启/关闭/重新启动一个服务

systemctl start name.service

systemctl stop name.service

systemctl restart name.service

其中,name为服务名称。例如关闭sshd服务:systemctl stop sshd.service,这时用ssh命令登录系统会失败并提示connection refused。开启sshd服务:systemctl start sshd.service,这时又可以用ssh命令登录系统了。这些命令只是临时开启或关闭服务,系统重启后会失效,如果想设置某个服务开启总是启用/禁用,要用下面标题3中的命令。

3. 设置一个服务开机启用/禁用

systemctl enable name.service

systemctl disable name.service

其中,name为服务名称。

4. 查看服务列表

systemctl list-unit-files [| grep status/name]

其中,status表示按状态筛选可以取enabled、disabled、static,表示只筛选这种状态的服务;name表示按名称筛选,支持模糊匹配。

注意,这个命令查到的服务状态是指开机启用/禁用,而不是当前的状态,这时它与标题1中的systemctl status命令的区别。

5. 查看现在开放的防火墙端口

firewall-cmd --zone=public --list-ports

6. 开放、关闭一个端口

firewall-cmd --zone=public --add-port=port/tcp --permanent

firewall-cmd --zone=public --remove-port=port/tcp --permanent

其中,port为要开放或关闭的端口号,这两个操作要重启防火墙服务才能生效。

服务操作示例

以防火墙为例

1. 查看防火墙的当前状态

systemctl status firewalld.service

可以看出,当前防火墙的状态为开启。

2. 关闭防火墙

systemctl stop firewalld.service

这时如果再调用systemctl status firewalld.service查看防火墙的当前桩体,会发现变成关闭。

3. 查询服务列表

systemctl list-unit-files

找到防火墙的部分:

发现仍然是开机启用状态,因此调用systemctl stop命令指示临时关闭防火墙,重启系统后,防火墙仍然会默认启用。

4. 设置防火墙为开机默认禁用

systemctl disable firewalld.service

再调用systemctl list-unit-files,找到防火墙的部分:

5. 开放8080端口

firewall-cmd --zone=public --add-port=8080/tcp --permanent

systemctl restart firewalld.service

先开放8080端口,再重启防火墙服务,即可生效。8080端口通常用于tomcat服务,开放后外部可以访问tomcat容器中的资源。








linux(centOS7)的基本操作(六) 进程管理的更多相关文章

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

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

  2. Linux内核学习笔记-2.进程管理

    原创文章,转载请注明:Linux内核学习笔记-2.进程管理) By Lucio.Yang 部分内容来自:Linux Kernel Development(Third Edition),Robert L ...

  3. CentOS7 安装supervisor守护进程管理器

    supervisor没有发布在标准的CentOS源在,需要安装epel源.这种方式安装的可能不是最新版本,但比较方便,安装完成之后,配置文件会自动帮你生成. 默认配置文件:/etc/superviso ...

  4. Linux下取代top的进程管理工具 htop

    一.htop 简介 This is htop, an interactive process viewer for Linux. It is a text-mode application (for ...

  5. Linux常用命令_(进程管理)

    进程管理:ps.top.kill 指令名称:ps语法:ps [选项]-a显示所有终端机下执行的程序.-e显示所有程序.-f显示UID,PPIP,C与STIME栏位.功能描述:查看系统中运行的进程.范例 ...

  6. Linux基础: 网络命令和进程管理

    ​  netstat lsof ps pstree pkill/kill (了解jenkins git,排查环境) 查询服务器之间是否有链接(netstat -an) 某个服务是否启动(了解服务对应的 ...

  7. Linux内核入门到放弃-进程管理和调度-《深入Linux内核架构》笔记

    进程优先级 硬实时进程 软实时进程 普通进程 O(1)调度.完全公平调度器 抢占式多任务处理(preemptive multitasking):各个进程都分配到一定的时间段可以执行.时间段到期后,内核 ...

  8. Linux内核分析 笔记六 进程的描述和进程的创建 ——by王玥

    一.知识点总结 (一)进程的描述 1.操作系统内核里有三大功能: 进程管理 内存管理 文件系统 2.进程描述符:task_struct 2.进程描述符——struct task_struct 1. p ...

  9. [Wolfgang Mauerer] 深入linux 内核架构 第二章 进程管理与调度【未完】

     作为Linux开发爱好者,从事linux 开发有三年多时间.做过bsp移植,熟悉u-boot代码执行流程:看过几遍<linux 设备驱动程序开发>,分析过kernel启动流程,写过驱动, ...

随机推荐

  1. 第十篇.1、python并发编程之多进程理论部分

    一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行): egon在一个时间段内有很多任务要做:python备课的任务,写书的任 ...

  2. Linux grep命令 -- 三剑客老三

    常用选项 -E :开启扩展(Extend)的正则表达式. -i :忽略大小写(ignore case). -v :反过来(invert),只打印没有匹配的,而匹配的反而不打印. -n :显示行号 -w ...

  3. 指针、数组与sizeof运算符

    指针.数组与sizcof运算符 (1)sizeof是c语言的一个运算符(主要sizeof不是函数,虽然用法很像函数),sizeof的作用是用来返同()里面的变量或者数据类型占用的内存字节数. (2)s ...

  4. Nginx源码安装配置

    Nginx web服务器简介 Nginx ("engine x") 是一个高性能HTTP 和 反向代理 服务器.IMAP.POP3.SMTP 服务器. Nginx 是由 Igor ...

  5. C语言之在头文件中定义全局变量

    通常情况下,都是在C文件中定义全局变量,在头文件中声明,但是,如果我们定义的全局变量需要被很多的C文件使用的话,那么将全局变量定义在头文件里面会方便很多,那到底是如何实现的? os_var.c文件内容 ...

  6. Linux umask 档案预设权限/touch 建立空档案或修档案件时间

    1 建立档案时,权限一般设为-rw-r--r-- 2 建立目录时,权限一般设为drwxr-xr-x 3 touch 选项与参数 -a :  仅修订access time -c :仅修改档案的时间,若该 ...

  7. Linux centos :root密码忘记怎么办?

    1 重启系统后出现GRUB界面在引导装载程序菜单上,用上下方向键选择你忘记密码的那个系统键入“e” 来进入编辑模式. 2 接下来你可以看到如下图所示的画面,然后你再用上下键选择最新的内核(这里是第二行 ...

  8. opengl学习-利用模板测试勾画物体轮廓中出现的一个问题

    我在学习OpenGL模板测试勾画物体轮廓的时候,出现了这个问题: 这个出现的原因就是,改变摄像机的时候,每次绘制,上次绘制中模板缓冲区的数据没有清除的原因.也就是在while循环开始的时候,glCle ...

  9. Mac OSX编译安装php7.1.8

    laravel中用到ldap认证包,要求php7.0以上版本,而且安装Mews\Captcha包的时候 验证码无法显示 报错如下: Call to undefined function Interve ...

  10. cmd 创建并写入文件

    一.建立空文件的几种方法1.cd.>a.txtcd.表示改变当前目录为当前目录,即等于没改变:而且此命令不会有输出.>表示把命令输出写入到文件.后面跟着a.txt,就表示写入到a.txt. ...