进程
- 程序: 保存在外部储存介质中可以执行的机器代码和数据静态集合
- 进程: 在CPU及内存中处于动态执行的计算机程序
程序和进程的关系:
每个程序启动需要一个或者多个进程
进程是实现程序和功能服务的表现形式
- 查看进程命令
ps
ps aux
ps -lef
ps aux |grep vim
ps -lef
ps 命令选项
- a 显示当前终端下所有的用户的所有进程信息
- u 使用以用户为主的格式输出进程信息
- x 当前用户的所在终端信息下的进程信息
- e 显示进程内所有的信息
- l 使用长格式显示进程信息
- f 使用完整的格式显示进程信息
进程的状态:
R --------------- runing
S --------------- 可中断的睡眠状态
D --------------- 不可中断的状态
T --------------- 停止状态
Z --------------- 僵尸进程 (进程不在活跃但是仍然占用系统资源)
s -------------- 表示这个进程是领导者的进程
+ -------------- 该进程为后台进程
l -------------- 该进程是多线进程
N -------------- 低优先级进程
< -------------- 高优先级进程
pstree -aup
- TOP的用法
#TOP是用于动态实时显示进程状态信息 (每3s刷新进程)
- M :根据内存占用情况进行排序
- N :进程安装启动时间进行排序
- h :help获得帮助
- q :正常退出Top程序
- K :结束进程交互界面,输入Pid结束对应进程
- pgrep (对PID的管理程序)
pgrep -l vim # 查询vim 的进程
pgrep -u 用户名 # 查询指定的用户相关进程
- pstree (可以输出树形结构)
pstree -a # 列出完整的命令信息
pstree -u # 列出对应的用户名
pstree -p # 列出对应的PID
- 控制进程
1. 启动进程
- 手动启动进程
- at -----一次性计划启动进程
- crontab ----周期性计划启动进程
2. 改变进程方式
- 挂起当前进程
- Ctrl+Z #将前台的任务调入后台暂停运行
- 查看后台的进程
- jobs -l
- 将后台的进程恢复运行
- bg 任务编号 ----- 将指定的后台暂停程序在后台继续执行
- fg 任务编号 ----- 将制定的后台暂停程调入前台继续执行
3.终止进程执行
- Ctrl+C -----强制中断正在执行或是未执行的命令
- kill -----终止进程
- pgrep -l 程序名 ------ 得到指定进程PID
- kill pid ------- 正常PID对应进程
- kill -9 pid -------对于不能正常退出的程序,强制杀死
- killall 进程名称 ------退出同一个程序的多个进程
(vim aa.txt vim bb.txt vim cc.txt killall vim)
killall -9 vim
4. Pkill ---终止进程
- pkill 可以根据指定用户 进程名 终端所运行的程序进行终止
pgrep -l -U “ZOE” ----查看指定用户的执行的进程
pkill -9 -U “zoe” ----- 强制关闭zoe用户的进程
计划任务管理
at 一次性任务设置
- 指定的计划任务实在指定时间执行一次
- 必须开启atd系统服务
- 执行at 一次性计划的时间以系统时间为准,必须在系统时间之后
systemctl status atd
date #查看系统命令
at 10:35 2020-12-12 # 创建时间点的计划任务
at > tail -2 /etc/passwd/ > /top.txt (>覆盖 >>追加 )
ctrl +d
#验证结果
cat /top.txt
# 删除任务
atrm 4 # 删除任务编号为4的计划任务
# 查看未执行的一次性任务
atq
计划任务管理
crontab 命令
- 按照预先设设置的时间周期重复执行用户的指令的操作
- 属于周期性计划任务
- 主要设置文件
- 全局配置文件 /etc/crontab
- 系统默认的设置 /etc/cron.*/
- 用户定义的设置 /var/spool/cron/用户名 - 管理cron计划任务
- crontab -e -u 用户名
- crontab -l 列出查看计划任务
- crontab -r 清空计划任务
- 每天早上05:29自动开启防火墙服务
29 05 * * * /usr/bin/systemctl start firewalld.service - 每个隔7天清空/ftproot/tmp
0 0 /7 * * /usr/bin/rm -rf /ftproot/tmp/ - 每周一23:59重启服务器
59 23 * * 1 /usr/sbin/reboot - 每周一 三 五下午23:30 使用tar命令压缩/ftp/root目录为ftproot.tar.gz
30 23 * * 1,3,5 /usr/bin/tar zcvf ftproot.tar.gz /ftp/root