Java教程

进程和计划任务管理

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

进程和计划任务管理

一,进程

1.程序与进程的关系

程序(静态):

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

进程(动态):

在CPU及内存中运行的程序代码,

动态执行的代码;父子进程(每个程序可以创建一个或多个进程)

【程序:二进制的文件,静态】

【进程:程序运行的过程,是动态的,有生命周期及运行状态,并发多个线程,每个线程执行不同的任务】

程序,进程,线程的关系:

线程包含在进程之中,是进程中的实际运作单位,也是操作系统中能够独立运行的基本单位,也称作轻量进程,一个进程中可以并发多个线程,每一条线程可以并行执行不同的任务,在任务管理器中的一个个进程由下载的应用程序所产生的,一个应用程序也可以包含多个进程。

2.ps查看静态进程信息

ps命令:查看静态的进程统计信息

1)ps -aux:将以简单列表的形式显示出进程信

-a:当前终端下的所有进程信息

-u:以用户为主的格式输出进程信息

-x:当前用户在所有终端下的进程信息

上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。

USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字ID号,在当前系统中是唯一的。

%CPU:CPU占用的百分比。
%MEM:内存占用的百分比。
vsz:该进程使用的虚拟内存量(KB)。

RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。

简说:

pts是远程登录终端ctrl+ALT F1-F6 tty1 图像界面2和6
字符界面?系统本身白身执行的进程

打开一个终端,这个终端就叫pts/0,如果你再打开一个终端,这个新的终端就叫pts /1。

STAT:该进程的状态(D:不可中断的休眠状态:R:正在运行状态;s :处于休眠状态,可被唤醒;

T:停止状态,可能是在后台暂停或进程处于跟踪调试状态:
z:僵尸进程,进程已经中止,但是部分程序还在内存当中)
D:系统守护进程
T:调式、程序执行一般停止
R:该程序目前正在运作,或者是可被运作;
s :该程序目前正在睡眠当中(可说是 idle 状态啦!),但可被某些讯号(signal)唤醒。

T:该程序目前正在侦测或者是停止了;
Z:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie疆尸)
程序的状态

D不可中断状态.
它们含意如下::
<:表示进程运行在高优先级上

N:表示进程运行在低优先级上

L:表示进程有页面锁定在内存中

s:表示进程是控制进程
l:表示进程是多线程的
+:表示当前进程运行在前台

D:系统守护进程
T调式、程序执行一般停止
START:启动该进程的时间。|
TIME:该进程占用的cPU 时间。

COMMAND:启动该进程的命令的名称

2)ps -elf :将以长格式显示系统中的进程信息

-e:显示系统内的所有进程信息。
-1:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。

3.top查看动态进程信息

top命令:查看动态进程信息

top命令-查看进程动态信息
上述输出信息中,开头的部分显示了系统任务(Tasks ) 、CPu占用、内存占用(Mem)、交换空
间(Swap)等汇总信息,汇.总信息下方依次显示当前进程的排名情况。相关信息的含义表述如下
uptime
13:22:30当前时间
up 20days系统运行时间,说明此服务器连续运行20天了

user当前登录用户数
load average:0.06,0.60,0.48系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15 分钟前到现在的平均值。

系统任务(Tasks)信息:

total,总进程数;

running,正在运行的进程数;

sl休眠的进程数;

stopped,中止的进程数;

zombie,僵死无响应的进程数。

CPU占用信息:

us,用户占用;

sy,内核占用;

ni,优先级调度占用;

id,空闲cPU;

wa,I/o等待占用;

hi,硬件中断占用;

si,软件中断占用;

st,虚拟化占用。要了解空闲的cPU百分比,主要看%id部分。

内存占用(Mem)信息:

total,总内存空间;free,空闲内存;used,已用内存;
buff/ cache,物理内存和交换内存的缓冲区总和。

交换空间(Swap)占用:

total,总交换空间;

free,空闲交换空间;

used,已用交换空间;

avail Mem,可用物理空间。

4.pgrep根据特定条件查询进程PID信息

-l:选项可同时输出对应的进程名以及PID
-U:选项查询特定用户的进程
-t:选项查询在特定终端运行的进程

5.pstree:以树形结构列出进程信息

-p:选项使用时可以同时列出对应的PID号
-u:选项可以列出对应的用户名
-a:选项可以列出完整的命令信息

二,进程启动方式:

1.手工启动

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

后台启动:在命令行尾加"&"符

【jobs -l:查看后台运行的任务列表】

2.调度启动

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

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

3.进程的前后台调度

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

jobs:查看处于后台的任务列表

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

4.终止进程的运行

当用户在前台执行某个进程时,可以按Ctrl+C组合键强制进行中断(如命令长时间没有响应的情况下)。
中断前台进程的运行后,系统将返回命令行提示符状态等待用户输入新的命令。当按 Ctrl+C 组合键无法终止程序或者需要结束在其他终端或后台运行的进程时, 可以使用专用的进程终止工具 kill、killall 和 pkill。

kill -15信号只是通知对应的进程要进行"安全、干净的退出",程序接到信号之后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等等,如果准备工作做完了,再进行程序的终止。但是,如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么应用程序可以选择忽略该终止信号。这也就是为什么我们有的时候使用kill命令是没办法"杀死"应用的原因,因为默认的kill信号是SIGTERM(15),而SIGTERM(15)的信号是可以被阻塞和忽略的。

相比于kill -15命令,kill -9在执行时,应用程序是没有时间进行"准备工作"的,所以这通常会带来一些副作用,数据丢失或者终端无法恢复到正常状态等。

三,设置计划任务

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


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




周期性计划任务修改一次,需要重启一次。

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