Linux——进程管理

目录

作业和进程的概念

程序与进程的关系

查看进程信息------ps,top

ps命令

top命令

设置进程的优先级------nice,renice

nice命令

renice命令

查看进程信息------pgrep,pstree

pgrep命令

pstree命令

切换进程------jobs,bg,fg

前台、后台作业

终止进程------kill

计划任务管理------at

计划任务管理------crontab

crontab任务的配置格式

添加crontab调度


作业和进程的概念

Linux是一个多用户多任务的操作系统。

多用户是指多个用户可以在同一时间使用计算机系统; 多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。

为了完成这些任务,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。

程序与进程的关系

程序: 保存在硬盘、光盘等介质中的可执行代码和数据 是静态保存的代码。

进程:在CPU及内存中运行的程序代码 是动态执行的代码 父、子进程:每个进程可以创建一个或多个进程。

进程与程序是有区别的进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源:而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。

进程:程序的动态执行过程;一个程序可以有多个进程;一个或多个相关进程有时也被称作一个作业

查看进程信息------ps,top

ps命令

用途:显示正在执行的进程统计信息

格式:常用:ps [选项]

常用命令选项

  • -A
  • -a:终端上的所有进程
  • -e:系统中的所有进程
  • -l:长格形式
  • -u:面向用户的格式
  • -x:后台进程的信息

PID:该进程在系统中的数字ID号,在当前系统中是唯一的;

top命令

用途:查看动态的进程排名信息

设置进程的优先级------nice,renice

nice命令

是反应一个进程优先级状态的值,取值范围是-20至19,一共40个级别。 这个值越小,表示进程"优先级"越高,而值越大"优先级"越低。

直接运行nice,显示当前程序的运行优先级;

格式:nice [-优先级] 命令

#nice

#0

#nice -n 21 nice

#19

#nice -5 ftp #调整ftp进程的优先级为5

#nice --5 ftp #调整ftp进程的优先级为-5

renice命令

对一个正在运行的进程进行nice值的调整。

格式:renice 优先级值 [选项] 命令

常用命令选项

  • -p:进程号所标识进程的优先级
  • -u:指定用户所启动进程的优先级
  • -g:群组

renice 8 -p 2896

查看进程信息------pgrep,pstree

pgrep命令

用途:根据特定条件查询进程PID信息

root@localhost \~\]# pgrep "init" 1 \[root@localhost \~\]# pgrep -l "log" 2538 syslogd 2541 klogd 3221 login

pstree命令

用途:以树型结构显示各进程间的关系

root@localhost \~\]# pstree -aup init,1 ├─acpid,2866 ├─atd,3060 ├─auditd,2516 │ ├─python,2518 /sbin/audispd │ └─{auditd},2517 ├─automount,2842 ......

切换进程------jobs,bg,fg

显示作业命令

jobs -p 进程号

jobs -l 进程号+作业号

ctrl+Z 挂起当前作业

ctrl+C 终止当前作业

前台、后台作业

前台和后台运行作业作业可以在前台,也可以在后台运行,在同时间只能有一个作业在前台运行。前台作业是指正对它进行交互操作的作业,它从键盘接受输入,并将输出送往屏幕。另一方面,后台作业不接受中断的输入。它们在运行时不需要交互操作,只是默默运行。

bg [作业号] #前台→后台

fg [作业号] #后台→前台

将一个作业放到后台运行的一种方法是在命令后面加"&"字符,ex:$ yes >/dev/null &

终止进程------kill

kill -s 信号| -p 进程号

kill -l [信号]

kill 进程号

kill -9 用于强制终止

当使用作业号来标识作业时,在作业号前面要加"%" 。若该作业的作业号为1,可用下面的命令

$ ki11 %1

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

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

计划任务管理------at

在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

服务脚本名称:/etc/init.d/atd

设置格式:at [HH:MM] [yyyy-mm-dd]

root@localhost \~\]# service atd start 启动 atd: \[确定

root@localhost \~\]# at 23:45 at\> shutdown -h now at\> \ job 1 at 2009-09-14 23:45 # 按Ctrl+D键提交任务 \[root@localhost \~\]# atq 1 2009-09-14 23:45 a root

计划任务管理------crontab

按照预先设置的时间周期(分钟、小时、天......)重复执行用户指定的命令操作,属于周期性计划任务

管理cron计划任务

编辑计划任务:crontab -e [-u 用户名]

查看计划任务:crontab -l [-u 用户名]

删除计划任务:crontab -r [-u 用户名]

ex:

root@localhost root\]# crontab -l -u jerry 55 23 \* \* 7 /bin/cp /etc/passwd /home/jerry/pwd.txt \[root@localhost root\]# crontab -r -u jerry \[root@localhost root\]# crontab -l -u jerry no crontab for jerry

crontab任务的配置格式

时间数值的特殊表示方法

  • * 表示该范围内的任意时间
  • , 表示间隔的多个不连续时间点
  • - 表示一个连续的时间范围
  • / 指定间隔的时间频率

应用示例

0 17 * * 1-5 周一到周五每天17:00

30 8 * * 1,3,5 每周一、三、五的8点30分

0 8-18/2 * * * 8点到18点之间每隔2小时

0 * */3 * * 每隔3天

添加crontab调度

vi crontab -e

00 17 * * 5 tar -czf /home/hellon/data /backup/hellen-data.tar.gz

示例1(root用户):

每天早上7:50自动开启sshd服务,22点50时关闭

50 7 * * * systemctl start sshd

50 22 * * * systemctl stop sshd

每隔5天清空一次FTP服务器公共目录/var/ftp/pub

* * */5 * * rm -rf /var/ftp/pub/*

每周六的7:30时,重新启动httpd服务

30 7 * * 6 restart httpd

每周一、三、五的17:30时,打包备份/etc/httpd目录

30 17 * * 1,3,5 tar -zcvf /backup/httpd_backup_$(date +\%Y\%m\%d).tar.gz /etc/httpd

示例2(jerry用户):

每周日晚上23:55时将"/etc/passwd"文件的内容复制到宿主目录中,保存为pwd.txt文件

55 23 * * 7 cp /etc/passwd /home/jerry/pwd.txt

相关推荐
李二。19 分钟前
wordpress自学笔记 第二节: 3种独立站商城横幅的制作
服务器·笔记·wordpress
烦躁的大鼻嘎29 分钟前
【Linux】深入拆解Ext文件系统:从磁盘物理结构到Linux文件管理
linux·运维·服务器·ubuntu·centos
chenzhuyu1 小时前
海康摄像机在Edge浏览器的网页无法直接预览,按照要求安装WebComponents后仍然提示请安装插件或预览失败的解决办法
运维
极小狐1 小时前
如何减少极狐GitLab 容器镜像库存储?
运维·git·rpc·kubernetes·ssh·gitlab·terraform
成工小白1 小时前
【Linux】环境变量(图文)
linux·环境变量
cooldream20091 小时前
深入理解负载均衡:传输层与应用层的原理与实战
运维·负载均衡·系统架构师
YoungHong19921 小时前
Ubuntu通过源码编译方式单独安装python3.12
linux·运维·python·ubuntu
IT小饕餮1 小时前
华为设备MSTP
运维·华为
传知摩尔狮2 小时前
深入理解 Linux 虚拟文件系统(VFS)
linux·运维·服务器·性能优化
YBDDIE2 小时前
Linux中的防火墙
linux·服务器·网络