本文主要是介绍玄子Share-进程和计划任务管理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
玄子Share-进程和计划任务管理
程序和进程的关系
-
程序
-
保存在硬盘、光盘等介质中的可执行代码和数据
-
静态保存的代码
-
-
进程
-
在CPU及内存中运行的程序代码
-
动态执行的代码
-
父、子进程
-
每个程序可以创建一个或多个进程
-
查看进程信息-ps
查看静态的进程统计信息
[root@localhost ~]# ps -elf
[root@localhost ~]# ps -aux
# ps -aux 使用频率高,`-` 可以省略
USER
:启动当前进程的用户名PID
:该进程在系统中的数字ID号,在当前系统中是唯一的%CPU
:CPU占用百分比%MEM
:内存占用百分比VSZ
:虚拟内存RSS
:物理内存TTY
:启动终端,?
表示未知或不需要终端STAT
:进程状态S
:休眠s
:有父进程<
:高优先级N
:低优先级+
:前台进程l
:表示该进程是在系统启动时自动加载的
选项 | 功能 |
---|---|
a | 显示与当前终端有关的所有进程,包括其他用户的进程 |
x | 显示当前终端无关的所有进程 |
u | 以用户的格式显示进程信息 |
-e | 显示所有进程信息 |
-f | 以完整的格式显示进程信息 |
使用 ps 命令工具时,要注意选项前是否有”-“引导符,例如”e“和”-e”选项的含义是有区别的
查看进程信息-top
查看动态的进程排名信息
[root@localhost ~]# top
键位 | 功能 |
---|---|
P | 根据CPU占用情况对进程列表进行排序 |
M | 根据内存占用情况进行排序 |
N | 根据启动时间进行排序 |
k | 退出指定进程 |
h | 可以获得top程序的在线帮助信息 |
q | 可以正常退出top程序 |
空格 | 可以强制更新进程状态显示 |
选项 | 功能 |
---|---|
c | 根据CPU使用情况排序 |
z | 以彩色方式显示进程信息 |
M | 根据内存使用情况排序 |
k | 杀死进程信息 |
q | 退出top程序 |
-d | 间隔时间显示,默认为秒 |
查看进程信息-pgrep
根据特定条件查询进程 PID 信息
[root@localhost ~]# pgrep -l "log"
2538 rsyslogd
2113 mcelog
[root@localhost ~]# pgrep -l -U xuanzi -t tty1
27483 bash
27584 vim
选项 | 功能 |
---|---|
-l | 显示进程名 |
-U | 指定特定用户 |
-t | 指定终端 |
查看进程信息-pstree
以树形结构列出进程信息
[root@localhost ~]# pstree -aup
init,1……// 省略部分信息├─login,3221│ └─bash,27483,xuanzi│ └─vim,27674 myfile.txt
……// 省略部分信息
[root@localhost ~]# pstree -ap xuanzi
bash,27483└─vim,27674 myfile.txt
选项 | 功能 |
---|---|
-a | 显示完整信息 |
-u | 列出对应用户名 |
-p | 列出对应PID号 |
pstree -ap xuanzi
查看指定用户进程d
操作进程方式
进程的启动方式
-
手工启动
-
前台启动:用户输入命令,直接执行程序
ls -lh
-
后台启动:在命令行尾加入
&
符号
-
-
调度启动
-
使用 at 命令,设置一次性计划任务
-
使用 crontab 命令,设置周期性计划任务
-
[root@localhost ~]# cp /media/cdrom/* /mnt &
[1] 28454
# 输出信息中包括后台任务序号、PID号
改变进程的运行方式
- Ctrl+Z 组合键
- 将当前进程挂起,即调入后台并停止执行
- wget -c http://nginx.org/download/nginx-1.12.0.tar.gz
- jobs 命令
- 查看后台运行的任务列表
- -l 查看进程对应的PID号
进程的前后台调度
- fg 命令
- 将后台进程恢复到前台运行,可指定任务序号
[root@localhost ~]# jobs
[1]- Stopped cp /dev/cdrom mycd.iso
[2]+ Stopped top
[root@localhost ~]# fg 1
- bg 命令
- 将后台中暂停执行的任务以后台的方式恢复运行,可指定任务序号
终止进程的运行
- Ctrl+C 组合键
- 中断正在执行的命令
- kill、killall、pkill 命令
- kill 根据指定PID号终止进程
- killall 根据指定名称终止进程
- -9 选项用于强制终止
- pkill 命令(杀死当前进程和所有子进程)
- 根据进程名称、进程运行的用户等终止
- -U:根据进程运行的用户名终止相应进程
- -t: 根据进程所在的终端终止相应进程
[root@localhost ~]# pgrep -l -U "hackli"
3045 bash
[root@localhost ~]# pkill -9 -U "hackli"
[root@localhost ~]# pgrep -l -U "hackli"
强行杀死进程强制终止进程时可能会导致程序运行的部分数据丢失,因此不得以时不要轻易使用“-9”选项
计划任务管理
计划任务管理-at
一次性计划任务
at [HH:MM] [yyyy-mm-dd]
[root@localhost ~]# date
Sun May 7 10:33:13 EDT 2017
[root@localhost ~]# at 10:35 2017-05-07
at> pgrep -U root | wc -l > /tmp/ps.root
at> <EOT>
job 1 at Sun May 7 10:35:00 2017
[root@localhost ~]# cat /tmp/ps.root
202
Ctrl+D 键提交任务
在当天的 21:30 时自动关闭当前系统
[root@localhost ~]# at 21:30
at> shutdown -h now
at> <EOT>
job 2 at Sun May 7 21:30:00 2017
查看未执行的任务列表
[root@localhost ~]# atq
2 Sun May 7 21:30:00 2017 a root
删除第2条任务
[root@localhost ~]# atrm 2
[root@localhost ~]# atq
计划任务管理-crontab
crontab 命令,按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务
- 主要设置文件
- 全局配置文件,位于文件:/etc/crontab
- 用户定义的设置,位于文件:/var/spool/cron/用户名
crontab 计划任务管理
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -I [-u 用户名]
删除计划任务
crontab -r [-u 用户名]
crontab 任务配置格式
50 3 2 1 * run_command
# 分钟 小时 日期 月份 星期 命令
字段 | 说明 |
---|---|
分钟 | 取值为从0到59之间的任意整数 |
小时 | 取值为从0到23之间的任意整数 |
日期 | 取值为从1到31之间的任意整数 |
月份 | 取值为从1到12之间的任意整数 |
星期 | 取值为从0到7之间的任意整数,0或7代表星期日 |
命令 | 要执行的命令或程序脚本 |
时间数值的特殊表示方法
*
表示该范围内的任意时间,
表示间隔的多个不连续时间点-
表示一个连续的时间范围/
指定间隔的时间频率
crontab 任务配置示例
30 8 * * * /usr/bin/systemctl start sshd.service
# 在每天的 8 点 30 分执行 `systemctl start sshd.service` 命令,启动 SSH 服务
30 18 * * * /usr/bin/systemctl stop sshd.service
# 在每天的 18 点 30 分执行 `systemctl stop sshd.service` 命令,停止 SSH 服务
30 7 * * * /usr/bin/systemctl restart httpd.service
# 在每天的 7 点 30 分执行 `systemctl restart httpd.service` 命令,重启 HTTP 服务
30 5 * * 1,3,5 /usr/bin/tar zcf data.tar.gz /etc /boot
# 在每个月的 5 号且是 1、3、5 日的 5 点 30 分执行 `tar zcf data.tar.gz /etc /boot` 命令,将 `/etc` 和 `/boot` 压缩到 `data.tar.gz` 文件中
30 5 */3 * 6 /usr/bin/rm -rf /tmp/*
# 在每个星期六的 5 点 30 分执行 `rm -rf /tmp/*` 命令,删除 `/tmp` 目录下的所有文件
0 8-18/2 * * 1,3,5 /usr/bin/cp /etc/passwd /opt/user.txt
# 在每个月的 1、3、5 日的 8 点到 18 点之间,每隔 2 小时执行一次 `cp /etc/passwd /opt/user.txt` 命令,将 `/etc/passwd` 文件复制到 `/opt/user.txt`
玄子Share-进程和计划任务管理 2024.03.26
这篇关于玄子Share-进程和计划任务管理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!