Linux进程管理和计划任务

news2025/5/28 19:45:25

前言

上篇关于进程管理命令使用说明尚未完结,本篇将继续介绍相关命令以及计划任务管理。

目录

前言

一、控制进程

1. vmstat

2. free

3. iostat

4. iotop/iftop

5. uptime

6. mpstat

7. dstat

8. webadin

9. 服务器五大性能   

二、进程管理

1. 手动启动

1.1 将命令放入后台执行

1.2 查看后台任务列表

1.3 调出后台任务

1.4 继续任务

1.5 并行执行任务 

2. 结束进程

2.1 kill

2.2 killall

2.3 pkill

三、计划任务

1. at

1.1 概述示例

 1.2 黑白名单

2. crontab

2.1 概述选项

2.2 项目含义

2.3 示例

2.4 删除计划任务 

2.5 注意事项 


一、控制进程

1. vmstat

vmstat命令,是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息。

[root@localhost ~]# vmstat [-a] [刷新延时 刷新次数]
[root@localhost ~]# vmstat -a 1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 835504 295456 389152    0    0    27     4   49   78  0  1 99  0  0
 0  0      0 835512 295456 389224    0    0     0     1   73  112  0  0 100  0  0
 0  0      0 835512 295456 389224    0    0     0     0   57   93  0  0 100  0  0

字段含义: 

procs进程信息字段: -r:等待运行的进程数,数量越大,系统越繁忙; -b:不可被唤醒的进程数量,数量越大,系统越繁忙。

memory内存信息字段: -swpd:虚拟内存的使用情况,单位为 KB。 -free:空闲的内存容量,单位为 KB。-buff:缓冲的内存容量,单位为 KB。-cache:缓存的内存容量,单位为 KB。

swap交换分区信息字段: -si:从磁盘中交换到内存中数据的数量,单位为 KB; -so:从内存中交换到磁盘中数据的数量,单位为 KB。这两个数越大,表明数据需要经常在磁盘和内存之间进行交换,系统性能越差。

io磁盘读/写信息字段: -bi:从块设备中读入的数据的总量,单位是块; -bo:写到块设备的数据的总量,单位是块。这两个数越大,代表系统的 I/O 越繁忙。

system系统信息字段: -in:每秒被中断的进程次数; -cs:每秒进行的事件切换次数;这两个数越大,代表系统与接口设备的通信越繁忙。

cpu信息字段: -us:非内核进程消耗 CPU 运算时间的百分比;-sy:内核进程消耗CPU运算时间的百分比;-id:空闲 CPU 的百分比;-wa:等待I/O所消耗的CPU 百分比;-st:被虚拟机所盗用的CPU百分比。

2. free

查看进程占用,内存的详细信息

free  -h   #人性化显示
free  -m   #以m为单位查看

Q:内存占用过多怎么办? 

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        481M        986M         12M        351M        1.2G
Swap:          4.0G          0B        4.0G
[root@localhost ~]# echo 3 > /proc/sys/vm/drop_caches     #清除缓存
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        465M        1.2G         12M        134M        1.2G
Swap:          4.0G          0B        4.0G

不过这个方法只能临时缓解,最根本的还是增加硬件配置。 

3. iostat

iostat 可以提供更丰富的IO性能状态数据,此工具由sysstat包提供。

常用选项:

  • -c 只显示CPU行
  • -d 显示设备〈磁盘)使用状态
  • -k 以千字节为为单位显示输出
  • -t 在输出中包括时间戳
  • -x 在输出中包括扩展的磁盘指标

4. iotop/iftop

监视磁盘I/O;网络宽带。两个命令均要下载安装;如果iftop无法yum安装,需要安装epel源:yum install -y epel-release.noarch

[root@localhost ~]# yum install -y epel-release.noarch
[root@localhost ~]# yum install -y iftop
[root@localhost ~]# iftop -ni ens33                     #网络流量

5. uptime

系统运行了多长时间

[root@localhost ~]# uptime
 14:22:15 up 35 min,  1 user,  load average: 0.02, 0.02, 0.05
 #当前时间   运行时间  登录用户          

6. mpstat

显示CPU相关统计

[root@localhost ~]# mpstat
Linux 3.10.0-1160.el7.x86_64 (localhost.localdomain) 	2024年01月04日 	_x86_64_	(2 CPU)

14时23分41秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
14时23分41秒  all    1.39    0.00    0.96    0.06    0.00    0.02    0.00    0.00    0.00   97.58
#当前时间          用户空间 ni优先级 系统内核                         盗取时间
系统空闲
[root@localhost ~]# mpstat  1  3
#1秒 一次 看3次

7. dstat

系统资源统计,需要安装

[root@localhost ~]# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  1   1  97   0   0   0| 216k  280k|   0     0 |   0     0 | 182   265 
  2  37  52   9   0   1|1408k  832k|  60B  818B|   0     0 |4676  5283 
  2  37  51  10   0   1|1284k    0 |  60B  354B|   0     0 |4644  5300 
  2  38  50   9   0   1|1184k    0 |  60B  346B|   0     0 |4562  5051 ^C

8. webadin

基于web界面的系统管理工具,可以通过浏览器远程管理linux;安装包获取:

链接:https://pan.baidu.com/s/1RFfkLKlLHeTSUK9wD3EKOw 
提取码:vu8r 

yum install webmin-2.100-1.noarch.rpm -y
rpm -q webmin
systemctl start webmin
systemctl status webmin

https://虚拟机ip:10000/
root  
自己系统的密码

 

9. 服务器五大性能   

资源命令
cputop,w
内存top,free
硬盘剩余df
硬盘读写性能iostat
网络带宽iftop

二、进程管理

1. 手动启动

  • 前台启动:通过终端启动,且启动后一直占据终端
  • 后台启动:可通过终端启动,但启动后即转入后台运行(释放终端),后台执行可以并行执行

1.1 将命令放入后台执行

[root@localhost ~]# sleep 8000 &    #&表示放入后台
[1] 2156

1.2 查看后台任务列表

[root@localhost ~]# jobs
[1]+  运行中               sleep 8000 &

1.3 调出后台任务

[root@localhost ~]# fg 1
sleep 8000
^Z                                        #ctrl z
[1]+  已停止               sleep 8000

1.4 继续任务

[root@localhost ~]# bg 1
[1]+ sleep 8000 &

1.5 并行执行任务 

案例:查看192.168.190段哪些设备在线

[root@localhost ~]# vim ping.sh

#!/bin/bash
#name=ping

for i in {1..254}
do
{
ping -c1 -w2 192.168.190.${i} &> /dev/null && echo "192.168.190."$i" up" >> /data/up || echo "192.168.190."$i" down" >> /data/down
} &
done
#for循环,变量i取值1到254.向192.168.1.1~254各ping一个包,超时两秒,不论什么结果输出到垃圾箱;如果ping通将内容追加/data/up文件中;如果ping不通将内容追加/data/down文件中;整个过程后台运行。

2. 结束进程

2.1 kill

kill从字面来看,就是用来杀死进程的命令,但事实上,kill命令只是用来向进程发送一个信号,至于这个信号是什么,是用户指定的。

kill [信号] PID 
kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。
信号编号信号名含义
0EXIT程序退出时收到该信息
1HUP挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化
2INT表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号
3QUIT退出
9KILL杀死进程,即强制结束进程
11SEGV段错误
15TERM正常结束进程,是 kill 命令的默认信号

注:可以使用 kill -l 命令查看所有信号及其编号 

2.2 killall

killall 也是用于关闭进程的一个命令,但和 kill 不同的是,killall 命令不再依靠 PID 来杀死单个进程,而是通过程序的进程名来杀死一类进程,也正是由于这一点,该命令常与 ps、pstree 等命令配合使用。

killall [选项] [信号] 进程名
  • -i:交互式,询问是否要杀死某个进程;
  • -I:忽略进程名的大小写;  

2.3 pkill

当作于管理进程时,pkill 命令和 killall 命令的用法相同,都是通过进程名杀死一类进程。不过plkill针对单个对象,killall可针对多个对象。该命令的基本格式如下:

 pkill [-t 终端号] 进程名
  • -u uid: effective user,生效者,根据进程所在的终端终止相应进程
  • -U uid: real user,真正发起运行命令者,根据进程所属的用户名终止相应进程
  • -t terminal: 与指定终端相关的进程
  • -l: 显示进程名(pgrep可用)
  • -a: 显示完整格式的进程名(pgrep可用)
  • -P pid: 显示指定进程的子进程
[root@localhost ~]# w                #查询本机已经登录的用户
 16:52:50 up  1:51,  2 users,  load average: 0.01, 0.13, 0.12
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.190.1    15:02    2.00s  0.76s  0.02s w
root     pts/1    192.168.190.1    16:52    3.00s  0.06s  0.06s -bash
[root@localhost ~]# pkill -9 -t pts/1
[root@localhost ~]# w                #强制杀死从pts/1虚拟终端登陆的进程
 16:53:19 up  1:51,  1 user,  load average: 0.01, 0.11, 0.11
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.190.1    15:02    7.00s  0.76s  0.01s w

三、计划任务

1. at

1.1 概述示例

一次性的计划任务

at [选项] [时间]
[root@localhost ~]# date
2024年 01月 04日 星期四 16:18:44 CST
[root@localhost ~]# at 16:20             #创建计划      
at> touch /data/a<EOT>                   #计划内容,ctrl d提交
job 2 at Thu Jan  4 16:20:00 2024
[root@localhost ~]# atq                  #查看任务列表
2	Thu Jan  4 16:20:00 2024 a root
[root@localhost ~]# date
2024年 01月 04日 星期四 16:20:10 CST
[root@localhost ~]# ls /data
a
[root@localhost ~]# atrm  任务序列号      #删除任务

 1.2 黑白名单

  • 如果系统中有 /etc/at.allow 文件,那么只有写入 /etc/at.allow 文件(白名单)中的用户可以使用 at 命令,其他用户不能使用 at 命令(注意,/etc/at.allow 文件的优先级更高,也就是说,如果同一个用户既写入 /etc/at.allow 文件,又写入 /etc/at.deny 文件,那么这个用户是可以使用 at 命令的)。
  • 如果系统中没有 /etc/at.allow 文件,只有 /etc/at.deny 文件,那么写入 /etc/at.deny 文件(黑名单)中的用户不能使用 at 命令,其他用户可以使用 at 命令。不过这个文件对 root 用户不生效。
  • 如果系统中这两个文件都不存在,那么只有 root 用户可以使用 at 命令。

2. crontab

2.1 概述选项

周期性的计划任务

crontab -e
#进入 crontab 编辑界面。会打开Vim编辑你的任务
* * * * * 执行的任务,命令需要写绝对路径
如果不想写绝对路径需要在开头加上:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
选项功能
-u user用来设定某个用户的 crontab 服务,例如 "-u demo" 表示设备 demo 用户的 crontab 服务,此选项一般有 root 用户来运行。
-e编辑某个用户的 crontab 文件内容。如果不指定用户,则表示编辑当前用户的 crontab 文件。
-l显示某用户的 crontab 文件内容,如果不指定用户,则表示显示当前用户的 crontab 文件内容。
-r从 /var/spool/cron 删除某用户的 crontab 文件,如果不指定用户,则默认删除当前用户的 crontab 文件。
-i在删除用户的 crontab 文件时,给确认提示。

2.2 项目含义

[root@localhost ~]# cat /etc/crontab   #查看crontab配置文件
项目含义范围
第一个"*"一小时当中的第几分钟(minute)0~59
第二个"*"一天当中的第几小时(hour)0~23
第三个"*"一个月当中的第几天(day)1~31
第四个"*"一年当中的第几个月(month)1~12
第五个"*"一周当中的星期几(week)0~7(0和7都代表星期日)

2.3 示例

每月的1号15号30号—— * *   1,15,30  *  *

中午12点-16点 —— *  12-16/2  *  *  *

每半小时执行一次—— 30  *   *  *  *

特殊符号含义
*(星号)代表任何时间。比如第一个"*"就代表一小时种每分钟都执行一次的意思。
,(逗号)代表不连续的时间。比如"0 8,12,16***命令"就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠)代表连续的时间范围。比如"0 5 ** 1-6命令",代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线)代表每隔多久执行一次。比如"*/10命令",代表每隔 10 分钟就执行一次命令。

2.4 删除计划任务 

crontab -e 进入编辑器删除内容,类似于vim编辑器,编辑保存退出

crontab -r 删除计划任务

2.5 注意事项 

  • 5个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间
  • 在定义时间时,日期和星期最好不要在一条定时任务中出现,存在矛盾
  • */30 * * * * /usr/bin/touch /data/   `date +\%F`,这里存在语法错误,%前面需要加转义符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1355568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SemCms外贸网站商城系统 SQL注入漏洞复现(CVE-2023-50563)

0x01 产品简介 SemCms是国内团队打造的专门针对外贸网站的开源CMS,主要用于外贸企业,兼容IE,Firefox等主流浏览器。建设商城性质的外贸网站,多语言(小语种)网站。 0x02 漏洞概述 SemCms外贸网站商城系统SEMCMS_Function.php 中的 AID 参数存在SQL注入漏洞,未经身份认…

Zuul相关面试题及到案(2024)

1、什么是Zuul&#xff1f;它在微服务架构中有什么作用&#xff1f; Zuul是Netflix开源的一种提供API网关服务的应用程序&#xff0c;它在微服务架构中扮演着流量的前门角色。主要功能包括以下几点&#xff1a; 路由转发&#xff1a;Zuul网关将外部请求转发到具体的微服务实例…

【QT】中英文切换

很高兴在雪易的CSDN遇见你 前言 本文分享QT中如何进行中英文切换&#xff0c;希望对各位小伙伴有所帮助&#xff01; 感谢各位小伙伴的点赞关注&#xff0c;小易会继续努力分享&#xff0c;一起进步&#xff01; 你的点赞就是我的动力(&#xff3e;&#xff35;&#xff3e…

EtherCAT FP介绍系列文章—热插拔

EtherCAT主站能够顺利初始化和操作网络&#xff0c;离不开EtherCAT网络信息文件&#xff08;ENI&#xff09;&#xff0c;它包含与EtherCAT主站本机以及连接到主站上每个从站设备的配置一般性信息。该文件由配置工具创建&#xff0c;并由EtherCAT主站程序加载&#xff0c;如下图…

由于无法找到mfc100u.dll怎么解决,mfc100u.dll丢失的6个解决方法分享

本文将为您详细介绍mfc100u.dll文件以及丢失时的六个不同解决方法&#xff0c;帮助您更好地了解和解决这一问题。 一、mfc100u.dll是什么文件&#xff1f; mfc100u.dll是Microsoft Foundation Classes&#xff08;微软基础类库&#xff09;中的一个动态链接库文件。它是Visua…

AI的突破与融合:2024年中国智能技术的新纪元_光点科技

随着人工智能领域的不断突破&#xff0c;2024年注定将成为中国智能技术发展的一个新纪元。当下&#xff0c;AI技术不仅在理论研究上取得了重大进展&#xff0c;其在商业应用、社会服务等领域的融合也日益深入。本文将结合近期网络上的AI热点&#xff0c;展望中国在AI技术方面的…

印象笔记03 衍生软件使用

印象笔记03 衍生软件使用 Verse 以下内容来源于官方介绍 VERSE是一款面向未来的智能化生产力工具&#xff0c;由印象笔记团队诚意推出。 你可以用VERSE&#xff1a; 管理数字内容&#xff0c;让信息有序高效运转&#xff1b;搭建知识体系&#xff0c;构建你的强大知识库&am…

SwiftUI 打造一款“可收缩”的 HStack(一)

概览 拥有雄心壮志(亦或是自我感觉良好)的秃头码农们都喜欢接受编程上各种颇有难度的挑战,比如刷刷力扣(LeetCode)或 codeforces 上难题啥的。 为了满足小伙伴们的“冒险精神”(亦或是“自虐癖”),加上这篇博文我们会用连续 4 篇系列文章通过不同的方式来解决同一道与…

倍思科技红海突围要义:紧随新趋势,“实用而美”理念从一而终

移动数码周边市场始终不缺热度。 销售端是业绩的节节高升&#xff0c;如在2023年京东双十一&#xff0c;移动数码周边产品销售成果丰硕&#xff0c;根据京东战报&#xff0c;大功率充电器成交额同比提升 200%&#xff0c;65W以上移动电源成交额同比提升 150%&#xff0c;自带线…

[实用小知识]:Google浏览器添加代理SwitchyOmega

Google浏览器添加代理SwitchyOmega 1. 下载插件到本地 SwitchyOmega_2.5.21.crx OmegaOptions_20230615.bak 2. 开始配置Google代理 1、打开Google浏览器&#xff0c;点开右上角三个点&#xff0c;在更多工具里选择扩展程序 2、在扩展程序里打开开发者模式 3、将Google文件…

世微AP5125 外置MOS管5-100V 8A平均电流型LED降压恒流驱动器 SOT23-6

产品描述 AP5125 是一款外围电路简单的 Buck 型平均电流检测模式的 LED 恒流驱动器&#xff0c;适用于 8-100V 电压范围的非隔离式大功率恒流 LED 驱动领域。芯片采用固定频率 140kHz 的 PWM 工作模式&#xff0c; 利用平均电流检测模式&#xff0c;因此具有优异的负载调整 率特…

windows x86 calling convention

stdcall 全部压入栈里面 第一个参数最后一个入栈&#xff08;在栈顶&#xff09; fastcall ecx edx前两个 后面的压栈&#xff0c;顺序和stdcall一样

【代数学作业1-python实现GNFS一般数域筛】构造特定的整系数不可约多项式:涉及素数、模运算和优化问题

代数学作业1-完整版&#xff1a;python实现GNFS一般数域筛 写在最前面背景在GNFS算法中选择互质多项式时&#xff0c;需要考虑哪些关键因素&#xff0c;它们对算法的整体运行时间有何影响? 练习1题目题目分析Kleinjung方法简介通用数域筛法&#xff08;GNFS&#xff09;中的多…

Linux——搭建KVM环境

KVM虚拟化 一、安装所需软件 1、yum安装软件 [rootlocalhost ~]# yum -y install qemu-kvm qemu-kvm-tools virt-install qemu-img bridge-utils libvirt virt-manager 重新启动 [rootlocalhost ~]reboot 2、查看CPU是否支持虚拟化 [rootlocalhost ~]# cat /proc/cpuinf…

清风数学建模笔记-时间序列分析

内容&#xff1a;时间预测分析 一.时间序列 1.时点时间序列 2.时期时间序列&#xff1a;可相加 二.时间趋势分解 1.季节趋势 拓展&#xff1a;百度指数&#xff1a; 2.循环变动趋势&#xff08;和季节很像但是是以年为单位&#xff09; 3.不规则变动趋势&#xff08;像扰…

探索 Vue 实例方法的魅力:提升 Vue 开发技能(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

机器学习:贝叶斯估计在新闻分类任务中的应用(实验报告)

文章摘要 随着互联网的普及和发展&#xff0c;大量的新闻信息涌入我们的生活。然而&#xff0c;这些新闻信息的质量参差不齐&#xff0c;有些甚至包含虚假或误导性的内容。因此&#xff0c;对新闻进行有效的分类和筛选&#xff0c;以便用户能够快速获取真实、有价值的信息&…

几个有趣的go服务框架

开篇先吐槽几句&#xff5e; 我个人有一些习惯&#xff0c; 比如在服务设计时会考虑的比较长远&#xff0c;会考虑到到未来的扩展等等…然后程序设计的抽象成度就会比较高&#xff0c;各个模块之间解耦&#xff0c;但这样往往就会带来程序的复杂度提升。 这其实在一些公司里面…

LeetCode 2:两数相加

一、题目描述 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这两个…

Linux进程以及计划服务(二)

一.控制进程 前台运行&#xff1a;通过终端启动&#xff0c;且启动后一直占据终端&#xff08;影响当前终端的操作&#xff09; 后台运行&#xff1a;可通过终端启动&#xff0c;但启动后即转入后台运行&#xff08;不影响当前终端的操作&#xff09; 1.手动启动 前台启动&…