一、查看和控制进程
1.1ps命令
(1)ps 命令——查看静态的进程统计信息(Processes Statistic)
PID TTY TIME CMD
1579 pts/1 00:00:00 bash
1730 pts/1 00:00:00 ps
PID:进程IDTTY (进程id)
- TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
- TIME:该进程占用的 CPU 时间
- CMD:启动该进程的命令的名称
- a: 显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将显示系统中所有的进程信息。
- u:使用以用户为主的格式输出进程信息。
- x: 显示当前用户在所有终端下的进程信息。
- -e: 显示系统内的所有进程信息。
- -l: 使用长 (Long) 格式显示进程信息。
- -f: 使用完整的 (Full) 格式显示进程信息。
(2)ps aux(BSD风格)
[root@master ~]# ps aux
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。
- USER: 启动该进程的用户账号的名称。
- PID: 该进程在系统中的数字ID 号,在当前系统中是唯一的。
- %CPU: CPU 占用的百分比。
- %MEM: 内存占用的百分比。
- VSZ: 占用虚拟内存 (swap 空间) 的大小。
- RSS: 占用常驻内存(物理内存) 的大小。
- TTY:表明该进程在哪个终端上运行。“?”表示未知或不需要终端。
- STAT: 显示进程当前的状态,如 S(休眠)、R(运行)、Z(僵死)、
- START: 启动该进程的时间。
- TIME:该进程占用的 CPU 时间。
- COMMAND: 启动该进程的命令的名称。
(3)ps -elf(Unix风格)
备注:
- -e:显示系统内的所有进程信息。
- -l:使用长(Long)格式显示进程信息。
- -f:使用完整的(Full)格式显示进程信
PRI:priority 共有140个(0—139)
非实时进程(100-139)静态优先级
实时进程(0-99)动态优先级
NI:nice 共有40个,(-20—19)进程谦让度(对CPU资源的抢夺能力)NI值越高,优先值越低。
静态优先级,如果把nice映射到PRI上,数值是100-139.
(4)grep 命令对显示的进程进行过滤
[root@localhost ~]# ps aux | grep bash
(5)ps命令的长参数(GNU风格)
[root@localhost ~]# ps --user root
1.2:top 命令——查看进程动态信息
[root@localhost ~]# top
[root@localhost ~]# free (以字节为单位显示)
total used free shared buff/cache available
Mem: 3988652 190616 3650356 9236 147680 3599572
Swap: 4194300 0 4194300
[root@localhost ~]# free -m (以兆为单位显示)
total used free shared buff/cache available
Mem: 3895 186 3564 9 144 3515
Swap: 4095 0 4095
[root@localhost ~]# free -h (显示单位)
total used free shared buff/cache available
Mem: 3.8G 186M 3.5G 9.0M 144M 3.4G
Swap: 4.0G 0B 4.0G
1.3:pgrep 命令——查询进程信息
[root@master ~]# pgrep -l log (进程ID和进程名称)
819 systemd-logind
854 login
1686 rsyslogd
1.4:改变进程的运行方式
(1)挂起当前的进程
[root@localhost ~]# cp /opt/CentOS-7-x86_64-DVD-2009.iso /
按 Ctrl+Z 组合键挂起当前进程
(2)查看后台的进程
[root@localhost ~]# jobs -l
[1]+ 9109 停止 cp -i /opt/CentOS-7-x86_64-DVD-2009.iso /
(3)将挂起的后台进程恢复到后台运行
[root@localhost ~]# bg 1 (将挂起的后台进程恢复到后台运行)
[1]+ cp -i /opt/CentOS-7-x86_64-DVD-2009.iso / &
(4)将挂起的后台进程恢复到前台运行
[root@localhost ~]# cp /opt/CentOS-7-x86_64-DVD-2009.iso /
按 Ctrl+Z 组合键挂起当前进程(把前台进程放到后台,处于停止运行的状态)
[1]+ 已停止 cp -i /opt/CentOS-7-x86_64-DVD-2009.iso / (运行的命令)
[root@localhost ~]# fg 1 (将挂起的进程放在前台继续运行,1是任务号,)
总结大会:
- 前台进程:进程独占终端
- Ctrl+c 取消 Ctrl+z 挂起
- 后端进程:进程位于后端运行
- 命令后+& (以后台方式运行)
1.5:终止进程执行
(1)使用 kill 命令终止进程
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# systemctl start vsftpd (运行 vsftpd 程序)
[root@localhost ~]# pgrep -l vsftpd (查看 vsftpd 进程PID,即9188)
9188 vsftpd
[root@localhost ~]# kill -9 9188 (-9 强制杀死该进程)
(2)使用 kill -1 命令
[root@master ~]# yum -y install httpd
[root@master ~]# systemctl restart httpd
[root@master ~]# netstat -anpt | grep httpd
tcp6 0 0 :::80 :::* LISTEN 4737/httpd
[root@master ~]# vim /etc/httpd/conf/httpd.conf
- Listen 8080 (修改实验参数)
[root@localhost ~]# kill -1 19488
总结:
-1重新初始化进程,PID不会改变;不可以使用systemctl restart httpd,会改变PID,影响远程连接systemctl reload httpd =kill -1 两者使用效果一样
[root@localhost ~]# netstat -anpt | grep httpd
tcp6 0 0 :::8080 :::* LISTEN 19488/httpd
总结大会:
- kill -1 重新初始化进程,对PID无影响
- -2 结束进程,不强制,与Ctrl+z一致
- -9 强制杀死进程
- -15 kill默认选项,正常结束进程
- -19 关闭进程,结束
(3)使用 pkill 命令
[root@master ~]# pkill httpd (pkill +进程名称 ,可以直接杀死该进程)
pkill 针对进程的名称、运行该进程的用户、进程所在的终端等多种属性终止特定的进程。
killall针对进程名称
二、计划任务管理
2.1:at 一次性任务设置
[root@master ~]# yum -y install at
[root@master ~]# systemctl start atd
[root@master ~]# date (确定时间)
2024年 05月 11日 星期六 17:38:47 CST
[root@master ~]# at 17:41 (时间)
at> echo bbb>test (输入内容)
[root@master ~]# atq (查询)
1 Sat May 11 17:41:00 2024 a root
2 Sat May 11 21:00:00 2024 a root
您在 /var/spool/mail/root 中有邮件
[root@master ~]# ls (查询)
anaconda-ks.cfg mylog.conf test
[root@master ~]# cat test
bbb
[root@master ~]# atrm 1 (删除 ,1表示编号)
[root@localhost ~]# at 21:38
at> shutdown -h now (定时关机)
at> (退出使用Ctrl+d)
2.2:crontab 周期性任务设置
[root@master ~]# cd /etc/cron.hourly
[root@master cron.hourly]# vim aa.sh
echo “123456”>>test.txt
[root@master cron.hourly]# ll
总用量 8
-rwxr-xr-x. 1 root root 392 8月 9 2019 0anacron
-rw-r--r--. 1 root root 28 5月 11 18:05 aa.sh
[root@master cron.hourly]# chmod +x aa.sh (没有执行权可以通过chmod进行添加)
[root@master cron.hourly]# ll
总用量 8
-rwxr-xr-x. 1 root root 392 8月 9 2019 0anacron
-rwxr-xr-x. 1 root root 28 5月 11 18:05 aa.sh
[root@master ~]# vim /etc/crontab
[root@master ~]#systemctl restart crond
[root@master ~]# cat test.txt (查看该任务)
“123456”
“123456”
总结大会:
- 以天为单位的计划脚本,放置在/etc/cron.daily
- 以周为单位的计划脚本,放置在/etc/cron.weekly
- 以月为单位的计划脚本,放置在/etc/cron.monthly
2.3:crontab 周期性任务设置
[root@master ~]# crontab -e -u zhangsan (针对张三该用户进行任务配置)
21 20 * * 1,3,5 /usr/bin/systemctl restart httpd (/usr/bin/路径可以用which systemctl进行查询)
总结大会:
- -e:编辑计划任务列表。 root
- -u:指定所管理的计划任务属于哪个用户,默认是针对当前用户(自己),一般只有 root 用户有权限使用此选项(用于编辑、删除其他用户的计划任务)。 指定用户
- -l:列表显示计划任务。
- -r:删除计划任务列表。
[jerry @localhost ~]# crontab -e
[root@localhost ~]# crontab –l
[root@localhost ~]# crontab -l -u jerry (显示张三任务进程)
[jerry@localhost ~]$ crontab -r -u zhangsan (删除张三任务进程)