linux进程管理

简介: linux进程管理1、掌握程序、进程、线程2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat4.启动进程:前台启动;后台启动(命令最后加&)

前言


程序(有一个固定的路径)——二进制文件(比如公司)


保存在硬盘、光盘等介质中的可执行代码和数据

静态保存的代码


进程——程序运行的过程,有生命周期及运行状态(比如部门)


在CPU及内存中运行的程序代码

动态执行的代码

父、子进程(一个程序可以创建一个或多个进程)

每个程序可以创建一个或多个进程

区别:进程是自动台的,程序是静态的


线程(比如员工)与进程:


资源分配与调度

image.png

进程是资源调配的基本单位

线程是程序执行的最小单位


一、查看进程信息



1.1ps 查看静态的进程统计信息



1.1.1ps -aux



image.pngimage.pngimage.pngSTAT:


D:不可被唤醒的休眠状态;


R:正在运行状态;


S:处于休眠状态,可被唤醒;


T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;


Z:僵厂进程,进程己经中止,但是部分程序还在内存当中 ,但其父进程无法正常中止它


僵厂进程: 僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源


结合grep过滤查询

由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道操作和grep命令进行过滤。例如,执行以下操作可以过滤出包含“bash”的进程信息

image.png

1.1.2ps -elf



image.pngimage.png

1.2查看动态的进程排名信息——top



动态查看进程 top

可以用ctrl +c 停止查询

image.png

1.2.1利用按键更加清晰查看进程



image.png

1.2.2各行信息的含义



第一行:任务队列信息

image.png

第二行:系统进程信息

image.png

第三行: CPU占用信息

image.png


第四行:内存占用信息

image.png


第五行:为交换空间的信息

image.png

进程信息区各列解释

image.png

1.3pgrep命令— 根据特定条件查询进程PID信息



常用选项

image.png


1.4pstree命令—查看进程树



pstree命令可以查看当前系统的进程树,包括个各进程对应的PID号、用户名、完整命令等信息

常用选项:

image.png

二、进程的启动与控制



2.1控制进程



进程启动方式为手工启动和调度启动


2.1.1手工启动



前台启动:用户输入命令,直接执行程序

后台启动:在命令行尾加入“&”符号

当使用cp命令从光盘中制作镜像文件时,由于需要复制的数据较多,耗时较长,因此可结合“&”符号将复制操作放到后台运行,以便用户可以继续执行其他命令操作

用户必须等到该进程执行结束并退出以后才能继续输入其他命令,大多数命令操作在前台启动运行。进程在后台运行时,用户可以继续在当前终端中输入其他命令,而无须等待该进程结束,适用于运行耗时较长的操作。启动后台进程需要使用“&”操作符,将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。查看时需要在同一终端中

image.png



2.1.2调度启动



使用at命令,设置一次性计划任务

使用crontab命令,设置周期性计划任务

在服务器维护工作中,经常需要执行一些比较费时而且较占用资源的任务(如数据备份),这些任务更适合在相对空闲的时候(如夜间)进行。这时就需要用户事先进行调度安排,指 定任务运行的时间,当系统到达设定时间时会自动启动并完成指定的任务。调度启动的计划 任务进程均在后台运行,不会占用用户的命令终端。进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。


2.2进程的前后台调度



Ctrl+Z组合键

将当前进程挂起,即调入后台并停止执行


jobs命令

jobs [-l]

查看处于后台的任务列表


fg命令

将后台进程恢复到前台运行,需要指定后台进程的任务编号作为参数


bg(BackGround,后台)命令

可以将后台中暂停执行(如按 Ctrl+Z 组合键挂起)的任务恢复运行,继续在后台执行操作需要指定后台进程的任务编号作为参数


[root@localhost ~]# jobs

[1]- Stopped cp /dev/cdrom mycd.iso

[2]+ Stopped top

[root@localhost ~]# fg 1


2.3终止进程的运行



Ctrl+C组合键

中断正在执行的命令


kill、killall命令

kill用于终止指定PID号的进程

killall用于终止指定名称相关的所有进程

-9选项用于强制终止


pkill命令

根据特定条件终止相应的进程

常用命令选项

-U:根据进程所属的用户名终止相应进程

-t:根据进程所在的终端终止相应程序


三、计划任务管理



3.1at命令一次性计划任务



at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行

at>需要执行的指令

at>

#Crtl+D键可以提交任务

job 1 at xxxxxxxxxx

image.png



atq #查看未执行的一次性计划任务

atrm 4 #删除第4条任务


3.2crontab周期性计划任务



按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作


属于周期性计划任务


主要设置文件


全局配置文件,位于文件:/etc/contab

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/用户名

image.png



3.2.1管理crontab计划任务



编辑计划任务

crontab -e [-u 用户名] ## -u缺省时默认是针对当前用户,只有超级用户才可以用-u


查看计划任务

crontab -l [-u 用户名]


删除计划任务

crontab -r [-u 用户名]


crontab:守护进程会自动检查/etc/crontab文件,/etc/cron.d目录,及/var/spool/cron目录中的改变,如果发现配置有更改,他们就会被载入内存,所以当某个crontab文件改变后并不需要重新启动crond守护进程就可以设置生效


3.2.2crontab任务配置的格式



image.png


星期的数字为 0 或 7 时,都代表“星期天”的意思

image.png


时间周期设置 任务内容配置 命令一定要用绝对路径 例如:ls命令一定要用/usr/bin/ls ,可以which查看绝对路径

比如你要使用ls命令首先先要查看一下cp命令的位置(which cp)


image.png



总结



1、掌握程序、进程、线程


2、查看进程的命令:ps aux 或者ps -elf;top;pgrep;pstree;


3.如何查看子进程?pstree ap 或者 cd /proc/数字文件中的/stat


4.启动进程:前台启动;后台启动(命令最后加&)


查看后台任务列表:jobs


调用后台进程:fg 任务列表号


ctrl+z挂起


kill -9 进程号 PID


pkill -9 进程号 PID


killall 全部进程


at 小时:分钟 年-月-日


命令:ctrl D保存运行


atq 序号


atrm +序号


crontab -e -u 用户(不写用户默认当前用户)


crontab -l -u 用户


crontab -r -u 用户


格式:分 时 日 月 周 如果忘记可以查看cat /etc/crontab


*代表任意


, 不间隔的时间,比如1,2,4 可以是每隔周几


— 连续的时间 ,例如:1-7


/ 间隔的频率 1/* 每个一分钟 1/* 每隔一个小时 1/* 每隔一天 1/* 每隔一个月


相关文章
|
29天前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
29 0
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
594 2
|
3月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
64 2
|
4天前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
26 4
linux进程管理万字详解!!!
|
4天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
24 4
|
4天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
6天前
|
消息中间件 存储 Linux
|
12天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
12 1
|
24天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
【10月更文挑战第9天】本文将深入浅出地介绍Linux系统中的进程管理机制,包括进程的概念、状态、调度以及如何在Linux环境下进行进程控制。我们将通过直观的语言和生动的比喻,让读者轻松掌握这一核心概念。文章不仅适合初学者构建基础,也能帮助有经验的用户加深对进程管理的理解。
18 1
|
29天前
|
消息中间件 Linux API
Linux c/c++之IPC进程间通信
这篇文章详细介绍了Linux下C/C++进程间通信(IPC)的三种主要技术:共享内存、消息队列和信号量,包括它们的编程模型、API函数原型、优势与缺点,并通过示例代码展示了它们的创建、使用和管理方法。
26 0
Linux c/c++之IPC进程间通信