教你如何管理Linux进程和任务
每日分享:
成功的秘诀就是每天比别人多努力一点。
文章目录
- 一、查看进程
- 1、程序
- 2、进程
- 2.1、什么是进程
- 2.2、进程的特征
- 3、线程
- 3.1、线程是什么
- 3.2、线程和进程的区别
- 4、进程管理相关命令
- 4.1、查看静态的进程统计信息——ps
- 4.2、过滤查询——grep
- 4.3、动态查看进程信息——top
- 4.4、根据特定条件查询进程PID信息——pgrep
- 4.5、查看进程树——pstree
- 二、控制进程
- 1、手动启动
- 1.1、进程的前后台调度
- 2、结束进程
- 三、at一次性任务设置
- 四、crontab周期性任务设置
一、查看进程
内核功用:进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等
1、程序
保存在硬盘、光盘等介质中的可执行的代码和数据;
文件中静态保存的代码。
2、进程
2.1、什么是进程
在CPU及内存中运行的程序代码;
动态执行的代码;
父、子进程(每个程序可以创建一个或者多个进程)
2.2、进程的特征
- 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
- 并发性:任何进程都可以同其他进程一起并发执行;
- 独立性:进程是系统进行资源分配和调度的一个独立单位;
- 结构性:进程由程序、数据和进程控制块三部分组成。
3、线程
3.1、线程是什么
线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。一个标准的线程由线程ID、当前指令指针(PC)、寄存器和堆栈组成。
3.2、线程和进程的区别
线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线;
4、进程管理相关命令
进程的管理主要是指进程的关闭与重启。我们一般关闭或重启软件,都是关闭或重启它的程序,而不是直接操作进程的。
4.1、查看静态的进程统计信息——ps
常用选项
选项 | 说明 |
---|---|
a | 显示终端上的所有进程,包括其它用户的进程。 |
u | 使用以用户为主的格式输出进程信息。 |
x | 显示当前用户在所有终端下的进程信息。 |
-e | 显示系统内的所有进程信息 |
-l | 使用长格式显示进程信息。 |
-f | 使用完整的格式显示进程信 |
- ps aux 可以查看系统中所有的进程;
- ps -le 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
- ps -l 只能看到当前 Shell 产生的进程;
表头 | 含义 |
---|---|
USER | 启动该进程的用户账号名称 |
PID | 进程的 ID |
%CPU | 该进程占用 CPU 资源的百分比 |
%MEM | 该进程占用物理内存的百分比 |
VSZ | 该进程占用虚拟内存的大小 |
RSS | 该进程占用实际物理内存的大小 |
TTY | 该进程是在哪个终端运行的 |
STAT | 进程状态 |
START | 该进程的启动时间 |
TIME | 该进程占用 CPU 的运算时间 |
COMMAND | 产生此进程的命令名 |
4.2、过滤查询——grep
由于系统中运行的进程数量较多,需要查询某一个进程的信息时可以结合管道操作和grep命令进行过滤。
4.3、动态查看进程信息——top
top 命令可以动态地持续监听进程地运行状态,与此同时,该命令还提供了一个交互界面,用户可以根据需要,人性化地定制自己的输出,进而更清楚地了进程的运行状态。
通过 top 命令的第一部分就可以判断服务器的健康状态。如果 1 分钟、5 分钟、15 分钟的平均负载高于1,则证明系统压力较大。如果 CPU 的使用率过高或空闲率过低,则证明系统压力较大。如果物理内存的空闲内存过小,则也证明系统压力较大。
4.4、根据特定条件查询进程PID信息——pgrep
常用选项
选项 | 说明 |
---|---|
-U | 指定用户 |
-l: | 显示进程名 |
-a | 显示完整格式的进程名 |
4.5、查看进程树——pstree
以树形结构列出进程信息
格式:pstree [OPTION] [ PID | USER ]
常用选项
选项 | 说明 |
---|---|
-a | 显示启动每个进程对应的完整指令,包括启动进程的路径、参数等 |
-p | 显示PID |
-T | 不显示线程thread,默认显示线程 |
-u | 显示用户切换 |
二、控制进程
进程启动方式为手工启动和调度启动
1、手动启动
前台启动:用户输入命令,直接执行的程序;
后台启动:在命令行尾加入“ &”符号
1.1、进程的前后台调度
Ctrl + Z 组合键: 将当前进程挂起,即调入后台并停止执行
-jobs命令:查看处于后台的任务列表
[-l]选项显示PID号
fg命令:将后台进程恢复到前台运行,可指定任务序列号
2、结束进程
- Ctrl + C组合键 :中断正在执行的命令;
kill 、killall命令:
kill用于终止指定PID号的进程
killall用于终止指定名称相关的所有进程
-9选项用于强制终止
pkill命令:根据特定条件终止相应的进程
格式:pkill [-t 终端号] 进程名
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
三、at一次性任务设置
at命令 一次性计划任务
服务脚本名称:/etc/init.d/atd
设置格式
at [HH:MM] [yyyy-mm-dd] #不带年月日为今天执行
atq #查看未执行的一次性计划任务
atrm 4 #删除第4条任务
格式 | 用法 |
---|---|
HH:MM | 比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。 |
Midnight(midnight) | 代表 12:00 AM(也就是 00:00)。 |
Noon(noon) | 代表 12:00 PM(相当于 12:00)。 |
Teatime(teatime) | 代表 4:00 PM(相当于 16:00)。 |
英文月名 日期 年份 | 比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。 |
MMDDYY、MM/DD/YY、MM.DD.YY | 比如 011518 表示 2018 年 1 月 15 号。 |
now+时间 | 以 minutes、hours、days 或 weeks 为单位,例如 now+5 days 表示命令在 5 天之后的此时此刻执行。 |
四、crontab周期性任务设置
crontab命令
按照预先设置的时间周期(分钟、小时、天…)重复执行用户指定的命令操作
属于周期性计划任务
服务脚本名称:/etc/init.d/crond
常用选项:
选项 | 功能 |
---|---|
-u user | 用来设定某个用户的 crontab 服务 |
-e | 编辑某个用户的 crontab 文件内容 |
-l | 显示某用户的 crontab 文件内容 |
-r | 从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件 |
-i | 在删除用户的 crontab 文件时,给确认提示。 |
crontab -e
#进入 crontab 编辑界面。会打开Vim编辑你的任务
* * * * * 执行的任务
项目 | 含义 | 范围 |
---|---|---|
第一个"*" | 一小时当中的第几分钟(minute) | 0~59 |
第二个"*" | 一天当中的第几小时(hour) | 0~23 |
第三个"*" | 一个月当中的第几天(day) | 1~31 |
第四个"*" | 一年当中的第几个月(month) | 1~12 |
第五个"*" | 一周当中的星期几(week) | 0~7(0和7都代表星期日) |
在时间表示中,还有一些特殊符号
特殊符号 | 含义 |
---|---|
*(星号) | 代表任何时间 |
,(逗号) | 代表不连续的时间 |
-(中杠) | 代表连续的时间范围 |
/(正斜线) | 代表每隔多久执行一次 |
在书写 crontab 定时任务时,需要注意以下几个事项:
6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。
crontab 定时任务的最小有效时间是分钟,最大有效时间是月。
在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。
在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。
教你如何管理Linux进程和任务相关推荐
- 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
目录 前言 一.nohup命令详解 1-1.nohup命令介绍 1-2.语法格式 1-2-1.基础语法介绍 1-2-2.执行脚本文件 1-2-3.执行python文件 1-2-4.拓展延申:在服务器上 ...
- Linux进程 管理,Linux进程查看与管理以及作业控制
Linux进程查看与管理 静态结构:重底层开始往上 底层:硬件 kernel(OS):各硬件接口封装成简洁的接口 库:将内核功能封装成功能模块,供程序员研发使用 OS的基本功能:文件系统.网络功能.进 ...
- linux进程的高级管理,Linux进程查看,管理工具
浅谈linux下进程查看,管理工具 1.pstree 显示进程树. 显示各个进程之间的关系[root@test ~]# pstree init─┬─abrtd ├─acpid ├─atd ├─cons ...
- 【linux】监控和管理linux进程
ps:获取瞬间所有进程信息 PID为进程的ID编号,唯一. TTY为进程运行的位置,包括了后台(看不见),前台(可以看见). CMD为进程的程序名或者是启动命令. ps拿到一瞬间的状态->tim ...
- linux+pid的管理,Linux 进程管理
以下是Process Management使用的常用命令 - bg,fg,nohup,ps,pstree,top,kill,killall,免费,正常运行时间,很好. 与过程一起工作 快速提示:Lin ...
- 超简单甘特图教程,一招教你如何管理项目进程
甘特图可以让使用对象能更直观的了解到项目在某一时间的内容和进展,当然,它也不同于时间表或日程规划表,而是一个具有特殊代表性的甘特图. 甘特图常见用途 甘特图不仅仅是用来作业排序的,也可用于发展各式各样 ...
- 实验三linux服务与进程管理,Linux 进程与服务管理1
实验1: inittab配置调整 实验环境 在虚拟机Linux系统下 实验目标 注在Linux虚拟机环境中由于系统是装在虚拟机中而你的寄生系统是Windows因此在虚拟机中你需要用到Ctrl+Alt+ ...
- 7、监控和管理Linux进程
1.进程 什么是进程? 2.子进程.信号 每个进程都有一个ID叫做PID # cat /dev/zero > /dev/null # 上面开启的进程 `ctrl+c` # 查看所有的信号 kil ...
- 十一、监控和管理Linux进程
- linux 修改权限 anyone,linux 进程管理工具
狭义定义:进程是正在运行的程序的实例. 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动.它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的 ...
最新文章
- linux查看python环境变量_Linux中的Python环境变量
- mysql count or null_sql 语句中count()有条件的时候为什么要加上or null
- 盘点近期大热对比学习模型:MoCo/SimCLR/BYOL/SimSiam
- LINUX设置固定IP上网方法
- protel布线需要注意事项
- hibernate连接泄露_泄漏抽象,或如何正确地与Hibernate绑定Oracle DATE
- Jenkins Pipline语法
- 5.1 vim介绍 5.2 vim颜色显示和移动光标 5.3 vim一般模式下移动光标 5.4 vim一般模式下复制、剪切和粘贴...
- 分布式锁实现的几种方式(DB,Redis,Zookeeper)
- mysql的安装以及开启远程访问
- django web app_妹子用半天时间开发一个员工管理系统,没错django就是这么强悍
- 业务中台实践助力企业数字化转型
- javascript 源代码加密保护
- SQL分组排序函数(组内分别排序)
- 强烈推荐提升自我的30个好习惯
- 美食杰(个人主页) 上
- [软件使用][视频播放器]potplayer去掉外框
- 一个漂亮的证明与作图:高斯的正十七边形
- 数据库系统工程师考试历年试题分析与解答
- Vue实现集成使用第三方Animate.css动画库详细教程(解决鼠标移入移出闪烁问题)