Linux系统与管理 - (八)进程与计划任务管理

139 阅读5分钟

自说

电脑中无处不在的便是程序,程序执行的这个过程,又跟谁有联系?我们日常的一个简单定时,比如闹铃到了规定时间叫我们起床,这个过程又是如何实现?带着一系列的好奇与求知,接下来便随我一起走入知识海洋吧!

学习路径

Linux系统与管理 - (一)安装Linux系统

Linux系统与管理 - (二)Linux系统命令

Linux系统与管理 - (三)Linux常用命令解析

Linux系统与管理 - (四)VIM编辑器

Linux系统与管理 - (五)应用安装与管理

Linux系统与管理 - (七)磁盘管理❤

Linux系统与管理 - (八)进程与计划任务管理❤

进程

在Linux系统中,我们输入命令并对它进行执行时这一过程(未完成),则称为进程。进程时在cup及内存中去执行计算机程序,每个程序的创建都会生成一个或多个进程,操作系统是需要根据命令的执行通过进程一个个的去完成任务的,用于我们方便查看与管理。

ps 查看静态进程

静态进程是linux中常用的进程查看工具,主要用于显示当前系统运行资源的占用信息

语法 ps 参数

-a 显示当前终端下的所有进程信息

-u 显示用户的进程信息

-e 显示系统内的所有进程信息

-x 在当前用户所在终端下显示进程信息

例 :

其中各个信息解释

USER         进程的用户账号和名字      

PID             进程号(前面GID/UID一致)都是唯一的

%CPU        cpu占用率

%MEM        内存占用率

VSZ             虚拟空间大小(swap交换分区)

RSS         占用物理内存大小,也就是本机内存            

TTY      在呢个终端运行,“ ?”号表示不需要终端

STAT         当前状态(r 运行,s 休眠,z 僵死,<高优先级,>低优先级,s 父进程,+ 前台进程)

START           启动进程时间

TIME         进程占用cpu时间

COMMAND         启动进程命令名

top 查看动态进程

动态进程,顾名思义它是可以实时的反馈当前的状态,是在不断地更新状态信息,默认是3秒刷新一次,类似Windos中的任务管理器,能够用及时的为我们反馈系统资源的占用情况。

语法 top

开头显示了系统任务(tasks)信息、cpu占用信息(%cpu)、内存占用信息(kib mem)、交换分区占用信息(kib swap),当输入top启动想要停止时,可按“ ctrl + c”键终止。

进程的操作

pgrep 查看进程的具体信息

可根据使用查看某个进程的pid信息,将信息进行过滤

语法 pgrep 参数 进程名(需加英文下的双引号)

-l 显示进程号及其进程名

空参数 只显示进程号

-U 显示指定用户名下的进程信息

-t 显示当前终端下的进程信息

pgrep -l  “http”        查看进程名中包含http的信息

pstree 查看进程树(以层级的形式显示进程)

语法 pstree 参数

-a 列出完整信息

-u 列出对应的用户名

-p 列出对应的PID(进程号)

pstrss  -aup        显示当前进程下详细的信息  

kill (杀死)结束进程

就好比Windos中结束进程一个道理,将正在占用资源的程序结束掉

语法 kill 参数 进程号 / kill PID

-9 强制终止进程(可能会导致部分数据丢失)

kill  -9  4552        结束进程号为4552的进程

kill  “4552”        结束进程号为4552的这个进程

killall 结束所有进程

当要结束多个进程时,更加方便,效率较高

语法 killadd 进程名

killall  “bash”        结束名为bash的进程

pkill 终止进程

语法 pkill 参数 进程名

-U 指定用户

-t 指定终端

-9 强制终止进程(可能会导致部分数据丢失)

pkill  -9  -U  “natasha”        强制结束用户名为“natasha”下的进程

计划任务

crontab 周期性任务管理

contab是cron table的缩写,主要用于执行某种任务或者按照预定的周期性处理事件的一个进程,大大减少了重复性的操作,可方便我们使用

语法 crontab 参数

-e 编辑任务表

-l 以列表显示计划任务信息

-u 指定计划任务属于那个用户

-r 删除计划任务表

执行crontab -e后,下面是具体的配置格式信息,也可以使用cat /etc/crontab查看格式要求

图片.png

*                 *                *                *               *                命令/程序脚本

分                时                日                月                周       

(0-59)          (0-23)         (1-31)         (1-12)           (0- 6) 0位星期天      

每个星号代表着时间对应的格式,后面可以是普通的命令,也可以是自己写的程序脚本

例如:

crontab -e进去后


*  8  *  *  * /sbin/systemctl start NetworkManager 

意思是设置每天早上8点自动开启NetworkManager服务

==========================================================(分割线)

30  7  *  *  6 echo "123"

意思是每周六的7点半执行 echo “123”这个命令

0 */2 20 5-7 * /sbin/service httpd restart

意思是每5-7月的20号每两个小时重新启动httpd服务

** 希望以上内容能够帮助到你,多加练习,熟能生巧!**