Linux进程和计划任务管理

一,查看进程

1.程序和进程的关系

程序
	保存在硬盘,光盘等介质中的可执行代码和数据
	静态保存的代码
进程
	在cpu及内存中运行的程序代码
	动态执行代码
	父,子进程
	每个程序可以创建一个或者多个进程

2.PS --查看静态的进程统计信息

ps选项功能
psa显示当前终端下所有进程信息
psu显示以用户为主的格式显示进程信息
psx显示当前用户所在终端下的进程信息
ps-e显示系统内的所有进程信息
ps-l使用长格式显示进程信息
ps-f使用完整格式显示进程信息
例如
ps : 当前会话中打开的进程
ps aux :以简单列表的形式显示进程信息
ps -elf :以长格式显示系统中的进程信息
ps aux | grep 进程名 :查询某一个进程信息

3.top—查看进程的动态信息(动态的进程排名信息)

top

4.pgrep—查询进程信息

命令选项功能
pgrep -l “xxx” (-l 输出对应的进程名)输出进程名中包含xxx的进程及进程号pid
pgrep -U aaa (-U 特定用户)输出由用户aaa运行的进程及进程号pid
pgrep -t tty1(-t 特定终端)输出tty1终端运行的进程及pid号
pgrep -l "log" // 查询进程名中包含log
ogrep -l -U teacher-t tty1 //查询teacher 在tty1上运行的进程及进程号pid

5. pstree—查看进程树

pstree -aup //查看当前系统的进程树
选项功能
a列出完整命令信息
u列出对应的用户名
p列出其对应的pid号

二,控制进程

1. 启动进程

手工启动

​ 前台启动 : 用户输入命令,直接执行程序

​ 后台启动 :在命令行尾加入&符号

例如后台启动:

cp /dev/cdrom mycd.iso & // 将复制镜像文件的任务后台启动

调度启动(进程的调度启动可以通过at, crontab命令进行设置下面笔记会有)

2.改变进程的运行方式

1,挂起当前进程 (ctrl Z)

当程序正在前台执行时(运行尚未结束),按Ctrl +Z 组合键可以将当前进程挂起(调入后台并停止执行)

2,查看后台进程 (jobs -l)

3, 将后台的进程恢复运行(bg 或者fg )

选项功能
bg在后台中暂停执行的任务恢复运行,继续在后台工作
fg可将后台任务重新恢复到前台运行

注意; 这里如果后台任务只有一个的话可以用 bg 1 或者 fg 1 ,但如果是多个任务同时进行时,需要将任务编号作为参数

例如:在下载某软件包的时候,发现速度较慢,为了不耽误其他操作,可用ctrl +Z 将其调入后台并暂停执行

wget ftp://173,17,17,13/Firefox-latest.tar.bz2
此时按ctrl +Z 进行调动并停止
jobs -l // 查看当前挂起的下载任务信息
fg 1 //将后台的进程信息恢复运行

3.终止执行进程

在前台执行某个进程时,可以按ctrl +C 强行中断,但这个命令执行有限。所以以下三种:

1, kill命令终止进程 (kill 进程号 或者 kill -9 进程号)

通过kill 命令终止进程时,需要使用进程的PID号作为参数

例如:SSH服务的sshd 进程的PID号为2869,则执行 kill 2869可将其中止

pgrep -l "sshd" // 查询目标进程的PID号
kill 2869 // 杀死进程
pgrep -l "sshd" // 确认进程已中止,查询已无结果

2,killall 终止进程 (killall 进程名 )

当后台有多个相同名称的进程时可用

vi testfile 1
Ctrl Z
vi testfile 2
Ctrl Z
jobs -l

kill -9 vim // 这时以杀死以上创建的两个vim

3,pkill 命令终止进程

可根据进程的名称,运行该进程的用户,进程所在终端等多种属性终止特定进程。

命令选项

pkill -l “xxx” (-l 输出对应的进程名)

pkill -U aaa (-U 特定用户)

pgrep -l -U “hackli” // 确认目标进程相关信息
3045 bash
pkill -9 -U "hackli" // 强行终止用户hackli的进程
pgrep -l -U “hackli” //确认目标进程已被禁止

4.计划任务管理

1,at 一次性任务设置

使用at 命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd必须已经运行,需要注意的是,计划执行任务的时间,日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务。

例如:统计该时间点系统中由root用户运行的进程数量,并将该数值保存到/tmp/ps.root文件中

[ root ]date // 调出时间
[root ]at 14:55 2020-05-05
at>pgrep -u root | wc -l > /tmp/ps.root
at><EOT> //任务设置完成后按ctrl+D 组合键提交
job l at 2016-05-05 14:55
[root ] cat /tmp/ps,root // 等过了计划时间之后验证命令结果
63

例如:设置当天的21:30自动关闭当前系统

【root】at 21:30
at>shutdown -h now
at><EOT>
job 2 at 2016-05-05 21:30

对已经设置了但还未执行的计划任务,可以用atq查询,但已执行过的at任务将不会在表中

[root] atq

若要删除指定编号的at任务,可以使用atrm命令,删除后的at命令将不会被执行,并且不会显示在atq命令的显示结果中,但已经执行过的就无法删除

2,crontab 周期性任务设置

使用crontab 命令·设置的计划任务可以按照预设的周期重复执行,执行软件包:/etc/crontab, 有一个前提条件就是 : 对应的系统服务crond必须已经执行

crontab的配置文件和目录
/etc/crontab ----系统任务配置文件

/etc/cron.*/ ------系统默认设置cron任务的配置文件存放目录

/etc/cron.hourly/ -----存放的是每小时要做的任务
/etc/cron.daily/ ------ 存放的是系统每天要做的任务
/etc/cron.weekly/----- 每周要做的任务
/etc/cron.monthly ---- 每月做的任务
这些目录存放的是可执行脚本,不是配置文件,crond 服务通过run-parts 工具调用执行这些脚本文件,所以要确保位于这些目录位置下的脚本具有可执行权,否则不能运行

/var/spool/cron/ ------用户cron 任务的配置文件存放目录

用户任务计划存储路径 /var/spool/cron/用户名,由用户自行设置的cron计划任务将被保存到目录/var/spool/cron/中,当使用crontab命令创建任务计划,就会在/var/spool/cron/目录下生成一个与用户名相同的文件,例如:root 用户的cron计划任务保存在配置文件/var/spool/cron/root 中

使用crontab命令管理用户的计划任务

选项功能
crontab -e编辑任务计划表
crontab -u指定所管理的计划任务属于哪个用户,默认时针对当前用户(自己)一般只有root用户有权限使用此选项(用于编辑,删除其他用户的计划任务)
crontab -l列表显示计划任务
crontab -r删除计划任务列表

#crontab -l -u 用户名 root 用户可以查看普通用户做的任务计划,但是普通用户没有权限

查看root用户做的计划

选项功能
*/代表每间隔 ( */3 每隔3)
*代表任意的意思
-代表连续的意思
,代表不连续的意思

在这里插入图片描述

编辑任务计划:

crontab -e

分钟 时 日期 月份

星期 绝对路径的命令 (操作)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值