Linux系统--进程,计划任务,后台运行

一、进程

进程:就是一次程序的执行,拥有获取内存和释放内存的能力。

僵尸进程:进程没有释放内存的能力,当进程执行结束时,线程还没有结束,还在占用内存,导致当前进程卡在后台。

(一)查看进程

ps 查看进程

ps:查看进程,当前用户终端正在执行的进程。
在这里插入图片描述

-a:显示所有用户的所有进程
-u:按用户名和启动时间的顺序显示进程
-x:显示无控制终端的进程
-e:显示所有进程,包括没有终端的进程
-f:树状格式显示进程

在这里插入图片描述

USER:进程的属主
PID:进程的id
%CPU:cpu使用率
%MEM:内存使用率
VSZ:虚拟内存的大小
RSS:驻留中页的数量
TTY:终端
 ?:未知的终端
STAT:进程的状态
 S:当进程处于休眠状态
 R:运行状态
 T:停止状态
 X:死掉的进程
 >:优先级
 Z:僵死的进程
START: 启动的时间
Time: 运行时间
COMMAND:进程执行的命令

top

top:仪表盘,每隔3秒自动刷新一次,使用q退出仪表盘。
在这里插入图片描述

up:系统当前时间
3 users:当前用户数
load average:系统的负载
  0.08 0.07 0.12
  五分钟 十分钟 十五分钟
tasks:任务数量
running:正在运行的进程数量
sleeping:休眠的进程数
stopped:停止的进程
zombie:僵死的进程

如何使用python统计每个用户的进程数:
os.system():调用系统命令
popen():调用系统命令,将结果存入文件对象

import os
	# 获取所有的进程信息
	import os
	#print(os.system('ps -aux'))
	fobj = os.popen('ps -aux')
	count = {}
	with fobj as f:
	    for i in f.readlines():
	        #print(i.split(' '))
	        if i.split(' ')[0] in count:
	            count[i.split(' ')[0]] += 1
	        else:
	            count[i.split(' ')[0]] = 1

	if 'USER' in count:
	    del count['USER']

	print(count)

(二)杀死进程

进程筛选:

|:管道符,将前面的命令的输出的结果,传给后面的命令作为参数使用。

grep:筛选
在这里插入图片描述

杀死进程

kill -9 进程ID

如果不知道进程ID可以使用pkill

pkill -9 进程名

二、计划任务

计划任务:系统服务,所以在使用前要先启动服务

突发性服务at:临时性的任务,只执行一次

1.启动服务
systemctl start std
2.指定突发任务

格式:at 时间(回车)
at>任务(回车)
at>…
at>(ctrl+d保存,退出)

at now+10min(min–分钟,days–天)
在这里插入图片描述
指定某天某时:at 14:10 2019-9-3
在这里插入图片描述

ctrl+c:撤销
at -l:查看所有突发事件
atrm 任务id:删除指定的突发任务

定时性任务crontab

1.启动服务crond
2.指定定时性任务

crontab -uroot -e 回车后
在这里插入图片描述
绿框地址:定时性任务默认存储的地址

crontab,只能是root用户编辑
-u:指定用户
-e 编辑定时任务
-l 列出所有的定时任务
-r 删除定时任务

编辑:

格式: * * * * * 任务
第一个*:分钟 0-59
第二个号:小时 0-23
第三个
号:日 1-31
第四个号:月 1-12
第五个
号:周 1-7
任务即命令

*:任意数字
/:频率
-:数字的范围
,:离散数字
分钟:0-59
小时:0-23
日:1-31
月:1-12
周:1-7

例题

1.每月每周每日每小时的第一分钟创建目录/zhy/demo

1 * * * * mkdir /zhy/demo

2.每分钟执行一次mkdir /zhy/demo

* * * * * mkdir /zhy/demo

3.每月每周每天的晚上9点30执行命令

30 21 * * * 命令

4.每月的1号,10号,22号每天的4点45执行命令

45 4 1,10,22 * * 命令

5.每天的18点到23点的整点和半点执行命令

0,30 18-23 * * * 命令

6.每一小时执行一次命令

* */1 * * * 命令

7.每天六点钟执行命令

0 6 * * * 命令

8.每天凌晨六点四十

40 6 * * *命令

9.每周一到每周五的11:41开始每隔10分钟执行一次

41-59/10 11 * * 1-5 命令

10.每天的10:30开始,间隔2个小时执行一次

30 10-23/2 * * * 命令

11.每周一到每周五的两点执行命令

0 2 * * 1-5 命令

12.每周一到周五的8:00和9:00执行命令

0 8,9 * * 1-5 命令

13.每周一到每周五9:25到11:35,13:00到15:00之间间隔10分钟执行一次命令

25,35,45,55 9 * * 1-5 命令
5-55/10 10 * * 1-5 命令
5-35/10 11 * * 1-5 命令

14.每周一到周五 8:30,8:50,9:30,10:10,10:30,11:00,11:30,14:00,14:30

11:30,14:00,14:30 
30,50  8  *  *  1-5  命令
30  9  *  *  1-5  命令
10,30  10  *  *  1-5  命令
0,30  11,14  *  *  1-5  命令

15.执行python代码创建文件,每一分钟创建一次

/opt/scroptf.py:

import time
with open('%s'%time.strftime('%H:%M:%S'),'w')as f:
    f.write('当前时间%s'%time.strftime('%Y-%m-%d %H:%M:%S'))

在这里插入图片描述
/var/spool/mail:邮件的路径,当定时任务中的脚本报错时,会将错误信息以邮件的形式发给用户

三、后台运行

格式:命令 【属性】 【参数】 &
  如果输出需要做重定向输出
    命令 【属性】 【参数】 > 文件名 &

&:后台运行,终端关闭停止,Ctrl+C不停止
‘>’:重定向输出
echo:输出
nohup 命令 &:后台运行,终端关闭不停止,Ctrl+C可停止

&与nohup的区别:

如果直接使用&,当关闭终端是,使用jobs查看不到后台运行的程序。

nohup就算终端关闭也是可以使用jobs查看到后台运行的程序的。
在这里插入图片描述

四、查看占用某端口的进程信息

lsof -i:端口号
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值