进程和任务管理器

一、查看和控制进程

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

进程和任务管理器_第1张图片

[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 (删除张三任务进程)

你可能感兴趣的:(Linux,linux,运维)