Linux进程控制和计划任务管理

程序是保存在外部存储介质(如硬盘)中的可执行机器代码和数据的静态集合,而进程是在CPU及内存中处于动态执行状态的计算机程序。在Linux中,每个程序启动后可以创建一个或多个进程。

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

ps         只显示当前用户会话中打开的进程

ps  aux    以简单列表的形式显示出进程信息

ps  -elf   以长格式显示系统中的进程信息,包括更丰富的内容

top命令   查看进程动态信息

在当前终端已交互式的界面显示进程排名,及时跟踪CPU、内存等系统资源占用的情况,默认每三秒刷新一次

P键:根据CPU占用情况对进程进行排序

M键:根据内存占用情况对进程进行排序

N键:根据启动时间进行排序

h键:获得top程序的在线帮助信息

q键:退出top程序

k键:输入指定进程PID号,按下Enter键,终止对应的进程

pgrep命令    查询指定进程信息

-l   同时显示PID和对应的进程名

-U   查询特定用户的进程

-t   查询在特定终端运行的进程(如tty1)

pstree命令    查看进程树形结构,各进程对应的关系

-aup   查看当前进程树,并包括进程对应的PID号、用户名、完整命令信息

-ap 用户名参数   只查看指定用户的进程树结构

控制进程

命令+&   在后台运行命令,不占用前台的命令操作界面

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

jobs   查看后台运行的进程任务

-l   同时显示该进程对应的PID号

bg+PID号    将后台暂停执行的任务恢复运行,继续在后台运行

fg+PID号    将后台暂停执行的任务恢复到前台运行

终止进程执行

Ctrl+C   强制中断正在前台执行的某个进程

kill+PID号    终止进程并正常退出

-9      强制终止某个进程

killall+进程名    终止系统中多个相同名称的进程,更加方便、效率

-9     强行终止

pkill命令    可以根据进程的名称、用户、终端等属性终止特定的进程

-U   终止特定用户的进程

-t   终止在特定终端运行的进程(如tty1)

计划任务管理

在Linux操作系统中,还可以配置在指定时间,指定日期执行预先计划好的系统管理任务(如定期备份、定期采集监测数据)

at 一次性任务设置

配置文件   /etc/init.d/atd

命令格式: at  时间   日期

例如:在2017年8月15日的20:00是自动关闭系统

# at  20:00   2017-8-15

at> shutdown  -h  now

at>  设置完后按 Ctrl+D 提交任务

atq命令   查询已设置但还未执行的计划任务

atrm命令   删除指定编号的 at 任务,删除后将不会执行

crontab 周期性任务设置

配置文件   /etc/crontab

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

命令格式: crontab  -e   编辑计划任务列表

-u   指定管理的计划任务属于哪个用户,默认自己

-l   列表显示任务计划

-r   删除计划任务列表

1.编辑计划任务列表

执行crontab  -e 后,打开计划任务编辑界面

编辑格式:  分钟  小时  日期  月份  星期   执行的命令

* 表示取值范围中的任意时间

- 表示一个连续的时间范围,如“1-3”表示1、2、3

,表示一个间隔的不连续范围,如“1,5”表示1,5

/ 表示指定的间隔频率,如在小时字段中的“*/12”表示每个12小时

例如:按照固定的周期重复执行以下系统管理任务,任务内容如下

1.每天早上7:50自动开启sshd服务,22点50时关闭

2.每隔5天清空一次FTP服务器公共目录/var/ftp/pub

3.每周六的7:30时,重新启动httpd服务

4.每周一、三、五的17:30时,打包备份/etc/httpd目录

# crontab -e

50  7  *  *  *  /sbin/service   sshd  start

50  22  *  *  *  /sbin/service   sshd  stop

0  0  */5  *  *  /bin/rm  -rf  /var/ftp/pub/*

30  7  *  *  6  /sbin/service  httpd  restart

30  17  *  *  1,3,5  /bin/tar  zcf  httpd.tar.gz  /etc/httpd/

2.查看任务列表

crontab  -l   查看当前用户的计划任务列表

-u   查看其它用户的计划任务

例如:查看用户 ysf 的计划任务

# crontab  -l  -u  ysf

3.删除用户的计划任务列表

当只需删除某一条计划任务时,可通过 crontab -e 进行编辑;需要清空某个用户的所有计划任务时,可以执行 crontab -r 命令

例如:查看用户 ysf 的计划任务

# crontab  -r  -u  ysf

时间: 2024-10-08 06:52:49

Linux进程控制和计划任务管理的相关文章

Linux进程控制编程

一.获取ID #include<sys/types.h> #include<unistd.h> pid_t getpid(void)    获取本进程ID pid_t getppid(void)  获取父进程ID 父进程:现有进程中,创建新的进程. 例:getpid.c #include<stdio.h> #include<unistd.h> #include<stdlib.h> int main() { printf("PID=%d\

Linux进程控制——exec函数族

原文:http://www.cnblogs.com/hnrainll/archive/2011/07/23/2114854.html 1.简介 在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是: #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ...); int execlp(const char *file, const char

Linux进程控制程序设计

一.进程控制理论基础 进程:是一个具有一定独立功能的程序的一次运行活动.程序是静态的,程序在运行的时候是进程. 1.进程的特点: 动态性:区别于程序的显著特性 并发性:多个进程可以同时执行 独立性:独立的 异步性:进程与进程之间可以进行异步操作 2.进程三态: 进程的ID(PID):标志进程的唯一数字. 父进程ID(PPID) 启动进程的用户ID(UID) 3.进程互斥 进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者

Linux进程控制知识总结

目录 一:进程标识符(ID) 二:进程操作 2.1创建一个进程 2.2 fork函数出错情况 2.3创建一个共享空间的子进程 2.4退出程序 2.5设置进程所有者 三:执行程序 3.1 exec函数 3.2 执行解释器文件 3.3在程序中执行Shell命令 四:关系操作符 4.1等待进程退出 4.2 等待指定的进程 进程控制 -- 一步 一:进程标识符(ID) 进程ID是用来标识进程的编号,就像身份证一样.不同的进程有不同的ID,可以通过ID来查询进程.进程标识符的类型是pit_t,其本质是一个

Linux进程控制(一)

1. Linux进程概述 进程是一个程序一次执行的过程,它和程序有本质区别.程序是静态的,它是一些保存在磁盘上的指令的有序集合:而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建.调度和消亡的过程,是Linux的基本调度单位.那么从系统的角度看如何描述并表示它的变化呢?在这里,是通过进程控制块(PCB)来描述的.进程控制块包含了进程的描述信息.控制信息以及资源信息,它是进程的一个静态描述. 内核使用进程来控制对CPU和其他系统资源的访问,并且使用进程来决定在CPU上运行哪个程序,

六、Linux进程控制

1. Linux进程概述 进程是一个程序一次执行的过程,它和程序有本质区别. 程序是静态的,它是一些保存在磁盘上的指令的有序集合:而进程是一个动态的概念,它是一个运行着的程序,包含了进程的动态创建.调度和消亡的过程,是Linux的基本调度单位. 那么从系统的角度看如何描述并表示它的变化呢?在这里,是通过进程控制块(PCB)来描述的.进程控制块包含了进程的描述信息.控制信息以及资源信息,它是进程的一个静态描述. 内核使用进程来控制对CPU和其他系统资源的访问,并且使用进程来决定在CPU上运行哪个程

Linux进程控制(二)

1. 进程的创建 Linux下有四类创建子进程的函数:system(),fork(),exec*(),popen() 1.1. system函数 原型: #include <stdlib.h> int system(const char *string); system函数通过调用shell程序/bin/sh –c来执行string所指定的命令,该函数在内部是通过调用execve("/bin/sh",..)函数来实现的.通过system创建子进程后,原进程和子进程各自运行,

【转载】linux进程控制-exec系列 exec系统调用

inux进程控制-exec系列 说是exec系统调用,实际上在Linux中,并不存在一个exec()的函数形式,exec指的是一组函数,一共有6个,分别是: #include <unistd.h>int execl(const char *path, const char *arg, ...);int execlp(const char *file, const char *arg, ...);int execle(const char *path, const char *arg, ...,

小何讲进程: Linux进程控制编程 (fork、vfork)

所谓进程控制,就是系统使用一些具有特定功能的程序段来创建进程.撤消进程以及完成进程在各种状态之间的转换, 从而达到多进程高效率并发执行和协调资源共享的目的.进程控制是进程管理和处理机管理的一个重要任务. 1. fork()创建进程 在Linux系统中,除了系统启动之后的第一个进程(根进程)由系统来创建外, 其余所有进程都必须由已存在的进程来创建新创建的进程叫子进程,而创建子进程的进程叫父进程, 具有相同父进程的进程叫兄弟进程. 在Linux中创建一个新进程的方法是使用fork()函数. fork