自说
电脑中无处不在的便是程序,程序执行的这个过程,又跟谁有联系?我们日常的一个简单定时,比如闹铃到了规定时间叫我们起床,这个过程又是如何实现?带着一系列的好奇与求知,接下来便随我一起走入知识海洋吧!
学习路径
进程
在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查看格式要求
* * * * * 命令/程序脚本
分 时 日 月 周
(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服务
** 希望以上内容能够帮助到你,多加练习,熟能生巧!**