Java教程

进程和计划任务管理

本文主要是介绍进程和计划任务管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

目录

  • 一.程序和进程的关系
    • 1.程序
    • 2.进程
    • 3.进程
  • 二.查看进程信息
    • 1.查看静态的进程统计信息ps
    • 2.查看进程信息top
    • 3.查看进程信息
      • 1).查看进程信息pgrep
      • 2).查看进程信息pstree
  • 三.进程的启动方式
    • 1.手工启动
    • 2.调度启动/计划任务管理
      • 1.at命令 设置一次性计划任务
        • 1).一次性计划任务
        • 2).atq 命令 查看当前一次性任务
        • 3).atrm 任务号 删除任务
      • 2.crontab命令 设置周期性计划任务
        • 1).命令格式
        • 2).配置格式
        • 3).时间数值的特殊表示方法
  • 四.进程的前后台调度
    • 1.Ctrl+Z组合键
    • 2.jobs命令
    • 3.fg命令
  • 五.结束进程
    • 1.Ctrl+C组合键
    • 2.kill、 killall命令
    • 3.pkill命令
  • 总结

一.程序和进程的关系

1.程序

保存在硬盘、光盘等介质中的可执行的代码和数据
静态保存的代码

2.进程

在CPU及内存中运行的程序代码
动态执行的代码
父、子进程
每个程序可以创建一个或多个进程

3.进程

线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一个进程至少有一个执行线程;
线程也被称为轻量级进程;
线程是进程内部的一部分;

二.查看进程信息

1.查看静态的进程统计信息ps

方法一:
[root@localhost ~]# ps aux
-a:显示当前终端下的所有进程信息,包括其他用户的进程。
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息。
在这里插入图片描述

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯子的。
%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。

VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?
STAT它们含意如下:
进程状态。常见的状态有以下几种:
-D:不可被唤醒的睡眠状态,通常用于I/o情况。系统守护进程
-R:该进程正在运行,可被运作
-S:该进程处于唾眠状态,可被唤醒。
-T:停止状态,可能是在后台暂停或进程处于除错状态。调试程序执行
-W:内存交互状态(从2.6内核开始无效)。
-x:死掉的进程(应该不会出现)。
-Z:僵尸进程。进程已经中止,但是部分程序还在内存当中。
-<:高优先级(以下状态在BSD格式中出现)。
-N:低优先级。
-L:被锁入内存。
-s:包含子进程。
-l:多线程(小写L)。
+:位于后台。
-C:进程占用CPU的百分比

方法二:
ps -elf #将以长格式显示系统中的进程信息
-e :显示系统内的所有进程信息。
-l:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。
在这里插入图片描述

.各列的解释
F:内核分配给进程的系统标记。
s:进程的状态。
UID:启动这些进程的用户’。
PID: 进程的进程ID.
PPID:父进程的进程号(如果该进程是由另一"个进程启动的)
c:进程生命周期中的cPU利用率。占用率高的疑似程序可杀
PRI:进程的优先级(越大的数字代表越低的优先级)。
NI :谦让度值用来参与决定优先级。
ADDR:进程的内存地址。
sZ:假如进程被换出,所需交换空间的大致大小。
wCHAN:若该进程在睡眠,则显示睡眠中的系统函数名。
STIME:进程启动时的系统时间。
TTY:进程启动时的终端设备。
pts/0255代表虚拟终端,一般是远程连接的终端;
ttyltty7代表本地控制台终
TIME:运行进程需要的累计ceu时间。
CMD:进程的启动命令。

2.查看进程信息top

top命令
[root@localhost ~]#top 查看动态的进程排名信息
在这里插入图片描述

3.查看进程信息

1).查看进程信息pgrep

pgrep命令
根据特定条件查询进程PID信息
-l 长格式显示进程

[root@localhost ~]# pgrep -l "log"
424 xfs-log/dm-0
639 xfs-log/sda1
665 xfs-log/dm-3
672 xfs-log/dm-2
753 abrt-watch-log
754 abrt-watch-log
755 rsyslogd
758 systemd-logind


-u 显示指定用户的进程

[root@localhost ~]# pgrep -l -u   zy
3639 bash

2).查看进程信息pstree

pstree命令
以树形结构列出进程信息
[root@localhost ~]# pstree -aup
-p:列出对应PID号
在这里插入图片描述

-u:列出对应用户名
在这里插入图片描述

-a:显示完整信息
在这里插入图片描述

[root@localhost ~]# pstree -ap zy
bash,3639
  └─vim,3792 /opt/passwd

三.进程的启动方式

1.手工启动

可不影响其他命令操作
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号

[root@localhost opt]# cp -r /mnt/* /opt/zy &
[1] 3912

输出信息中包括后台任务序号、PID号

2.调度启动/计划任务管理

1.at命令 设置一次性计划任务

1).一次性计划任务

at [HH:MM] [yyyy-mm-dd]

[root@localhost ~]# at 13:28 
at> reboot 
at> <EOT>
job 1 at Sat Sep 11 13:28:00 2021
[root@localhost ~]# Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(linux) at 13:28:01.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

2).atq 命令 查看当前一次性任务

[root@localhost ~]# atq
3	Sat Sep 11 13:32:00 2021 a root

3).atrm 任务号 删除任务

查看任务后

[root@localhost ~]# atrm 3
[root@localhost ~]# atq

使用crontab命令,设置周期性计划任务

2.crontab命令 设置周期性计划任务

时间周期格式,后面跟命令
/etc/crontab

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

1).命令格式

如果没有方括号就是默认当前用户
编辑计划任务
crontab -e [-u 用户名]
查看计划任务
crontab -l [-u 用户名]
删除计划任务
crontab -r [-u 用户名]

2).配置格式

分、时、日、月、周 任务内容

字段说明
分钟取值为从0到59之间的任意整数
小时取值为从0到23之间的任意整数
日期取值为从1到31之间的任意整数
月份取值为从1到12之间的任意整数
星期取值为从0到7之间的任意整数,0或7代表星期日
命令要执行的命令或程序脚本

3).时间数值的特殊表示方法

  • 表示该范围内的任意时间
    , 表示间隔的多个不连续时间点
  • 表示一个连续的时间范围
    / 指定间隔的时间频率
    0 14 * * 1-5 周一到周五每天14:00
    30 9 * * 2,4,6 每周二、四、六的9点30分
    0 8-18/2 * * * 8点到18点之间每2小时
    0 * */2 * * 每2天

四.进程的前后台调度

1.Ctrl+Z组合键

将当前进程挂起,即调入后台并停止执行

2.jobs命令

查看处于后台的任务列表

[root@localhost opt]# jobs
[1]+  运行中                  cp -i -r /mnt/* /opt/zy

3.fg命令

将后台进程恢复到前台运行,可指定任务序号

五.结束进程

1.Ctrl+C组合键

中断正在执行的命令

2.kill、 killall命令

kill用于终止指定PID号的进程

[root@localhost ~]# pgrep -l "sshd"
1149 sshd
3588 sshd
4011 sshd
[root@localhost ~]# kill 1149
[root@localhost ~]# pgrep -l "sshd"
3588 sshd
4011 sshd

kilall用于终止指定名称的所有进程
后台程序没法杀,用9选项用于强制终止

3.pkill命令

根据特定条件终止相应的进程
pkill -U “用户名”
常用命令选项
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
-9:强制杀掉进程

总结

程序、进程、线程
查看进程命令
ps aux -elf
top
pgrep
pstree
查看子进程
1.pstree -ap
2.查看 /proc/进程号/stat
启动进程
前台 直接写命令
后台 末尾加&
jobs 查看后台的任务列表
fg 加任务序号 后台调出
ctrl+z挂起
kill -9 PID
pkill -9 PID
killall 杀掉全部进程
at 小时:分钟 年-月-日
命令
ctrl+d 运行
atq 序号查看
atrm 序号 删除任务
cronttab -elr -u 用户
编辑中的路径要写绝对路径,可用which查询

这篇关于进程和计划任务管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!