基于LINUX下的进程管理问题

什么是进程?

程序(program)放置在存储媒体中(如硬盘,光盘,软盘,磁带等)为实体文件的形态存在

进程:程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行的程序

进程的状态:

R(Running):该程序正在运行中;

S(Sleep):该程序目前正在睡眠状态(idle),但可以被唤醒(signal)

D:不可被唤醒的睡眠状态,通常进程可能在等待I/O的情况。

T:停止状态(stop),可能是在工作控制(背景暂停)或除错(traced)状态;

Z(Zombie):僵尸状态,程序已经终止但却无法被移除至内存外

1.进程的查看命令

ps -A ##所有进程

ps -a ##在当前用户环境运行的程序,不包含环境信息

ps -u ##显示进程用户信息

ps a ##在当前环境中运行的进程

ps x ##列出系统中所有运行包含tty输出设备

ps f ##显示进程的所属关系(父子关系)

ps e ##显示进程的详细信息(系统资源的调用)

ps常用组合

ps aux ##显示系统中的所有进程

ps ef ##显示进程详细信息并显示父子进程

ps ax ##显示当前系统的所有进程

pstree ##显示当前进程的进程树

显示进程的指定信息

ps -o xxx ##显示进程的指定信息

comm ##进程名称

user ##进程所有人

group ##进程所有组

%cpu ##进程cpu使用率

%mem ##进程内存使用率

pid ##进程pid

nice ##进程优先级

2.进程排序

ps ax --sort=

+%cpu|-%cpu

+%mem|-%mnm

stat中显示的信息

S ##进程状态

l ##内存中有锁定空间

N ##优先级低

< ##优先级高

+ ##前台运行

s ##顶级进程

3.进程优先级

1.进程的优先级范围-20~19

2.优先级的查看

ps ax -o pid,nice,comm

3.指定优先级

nice -n 优先级数字 进程名称

修改优先级

renice -n 数字 进程的id

环境中进程的前后台调用

jobs ##查看被打入环境后台的进程

ctrl+z ##把占用终端的进程打入后台

fg jobsnum ##把后台进程调回前台

bg jobsnum ##把后台暂停的进程运行

comm & ##让命令直接在后台运行

4.进程信号

常用信号等级

1 ##进程重新加载配置

2 ##删除进程在内存中的数据

3 ##删除鼠标在内存中的数据

9 ##强行结束单个进程(不可被阻塞)

15 ##正常关闭进程(可能被阻塞)

18 ##运行暂停的进程

19 ##暂停某个进程(不可被阻塞)

20 ##把进程打入后台(可以被阻塞)

man 7 signal ##查看信号的详细信息

kill -信号 进程的pid

注意,在这里kill-15可能无法结束掉比较重要的进程,如bash

killall -信号 进程的名字

pkill -u student -信号

切换到普通用户关闭vim同时关闭student的shell

5.进程的动态监控

top 常用的如下:

1. ##显示cpu每个核的负载

s ##调整刷新频率

c ##cpu负载排序

m ##内存使用量排序

h ##查看帮助

u ##查看指定用户进程

k ##对指定进程发起信号

q ##退出

6.控制服务

服务:cs模型:

c:client

s:server

定义:系统中运行的对于系统本身没有意义,但是对客户主机有重大意义的程序叫做服务性软件,简称服务

reloda=kill -1,但是有些服务没办法reload,例如网络服务


远程控制命令:
systemctl   status  sshd    ##查看服务状态,inactive(不可用)active(可用)
systemctl   start   sshd    ##开启服务
systemctl   stop    sshd    ##关闭服务
systemctl   restart sshd    ##重起服务
systemctl   reload  sshd    ##重新加载服务配置(同kill -1相同)
systemctl   enable  sshd    ##设定服务开机启动
systemctl   disable sshd    ##设定服务开机不启动
systemctl   list-units  ##列出已经开启服务当前当前状态
systemctl   list-unit-files ##列出所有服务开机启动的状态 disable,enable,static
systemctl   list-dependencies   ##列出服务的依赖
systemctl   mask sshd       ##冻结服务
systemctl   unmask  sshd        ##解冻服务
systemctl   set-default multi-user,target   ##设定系统后启动级别为多用户模式(无图形)
systemctl   set-dafault graphical,target    ##设定系统启动级别为图形模式

如图,在这里sshd服务时正在运行的

来源:https://blog.csdn.net/weixin_42446031/article/details/86498921

原文地址:https://www.cnblogs.com/thatme/p/10296593.html

时间: 2024-10-29 04:28:21

基于LINUX下的进程管理问题的相关文章

linux下的进程管理(进程的基本了解及查看pstree,ps,pgrep命令)

Linux下的进程管理 1.什么是进程?程序是静态的文件进程是运行中的程序的一个副本进程存在生命周期(准备期,运行期,终止期)2.进程状态 状态 定义 R(TASK_RUNNING) . 可执行状态(RUNNING,READY)running:正在被处理 ready: 在排队, cpu处理进程个数有限 S(TASK_INTERRUPTIBLE) 可唤醒状态 :在cpu上使用的时间超时,此时被打入休眠状态,随着程序的调用会被唤醒 D(TASK_UNINTERRUPTIBLE) 不可唤醒状态 T(T

【归纳总结】Unix/linux下的进程管理(二):创建进程的函数及其应用、对比

创建进程的函数fork().vfork()和execl() 本次内容主要介绍Unix/linux下2个创建进程的函数fork和vfork以及它们的差别. 1.fork函数 (1)函数的格式 #include <unistd.h> pid_t fork(void); 函数功能: 主要用于以复制正在运行进程的方式来创建新的进程,其中新进程叫做子进程,正在运行的进程叫做父进程. 返回值: 函数调用成功时,父进程返回子进程的PID,子进程返回0,函数调用出错时,父进程返回-1,子进程没有被创建. 注意

Linux下的进程管理

在操作系统系统中,进程是一个非常重要的概念. 一.Linux中进程的相关知识 1.什么是进程呢? 通俗的来说进程是运行起来的程序.唯一标示进程的是进程描述符(PID),在linux内核中是通过task_struck和task_list来定义和管理进程的. 2.进程的分类 1)根据在linux不同模式下运行分为: 核心态:这类进程运行在内核模式下,执行一些内核指令(Ring 0). 用户态:这类进程工作在用户模式下,执行用户指令(Ring 3). 如果用户态的进程要执行一些核心态的指令,此时就会产

linux下查找进程及终止进程操作的相关命令

使用linux操作系统,难免遇到一些软件"卡壳"的问题,这时就需要使用linux下强大的kill命令来结束相关进程.这在linux系统下是极其容易的事情,你只需要kill xxx即可,这里xxx代表与此软件运行相关的进程PID号.首先,我们需要使用linux下另外一个命令ps查找与进程相关的PID号:ps aux | grep program_filter_word1)ps a 显示现行终端机下的所有程序,包括其他用户的程序.2)ps -A 显示所有程序.3)ps c 列出程序时,显示

Linux入门之进程管理(4)之进程与文件

Linux入门之进程管理(4)之进程与文件 前面使用进程相关命令管理工具都是根据进程编号或者进程名称及其其它属性信息来查看和处理相关进程的,但是在某些情况下,想要查看某个文件或者某个设备被哪些进程所使用,使用ps.pgrep等命令查询的是不够准确的,而且有些时候并不是简单的去打开某个文本文件一样,这样还可以进行搜索过滤出来.而在linux系统中,除了常见的配置文件.日志文件等文本文件,几乎任何对象都会被内核映射去该有的文件,比如磁盘设备.挂载点等.当要知道那些用户通过哪些进程来在访问或者使用此文

【one day one linux】linux下的软件包管理工具

Linux 下的软件包管理工具 linux下的软件安装可以通过两种方式,一种是直接使用自带的软件包管理工具安装,另外一种通过编译源码安装. 1.软件包的种类 Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布后,RedHat 公司就不再开发桌面版的 Linux发行套件,Red Hat Linux停止了开发,而将全部力量集中在服务器版的开发上,也就是 Red Hat Enterprise Linux 版.2004年4月30日,Red Hat

Linux下的进程控制块—task_struct

Linux下的进程控制块 进程:程序的执行就是进程.也可以把进程看成一个独立的程序,在内存中有其对应的代码空间和数据空间,一个进程所拥有的数据和代码只属于自己.进程是资源分配的基本单位,也是调度运行的基本单位. 进程控制块(PCB)(系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程.系统利用PCB来控制 和管理进程,所以PCB是系统感知进程存在的唯一标志.进程与PCB是一 一对应的).是进程存在和运行的唯一标志,在Linux中用task_struct这个

linux下对进程按照内存使用情况进行排序

linux下对进程按照内存使用情况进行排序的命令为:ps aux --sort -rss 详细解说参见 http://alvinalexander.com/linux/unix-linux-process-memory-sort-ps-command-cpu

linux下查看进程路径

在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep python显示:oracle    4431  4366  0 18:56 pts/2    00:00:00 python Server.py4431就是进程号到/proc/4431下,ls -l 会看到:总用量 0-r--r--r--    1 oracle   oinstall        0