Linux进程管理

1. 进程管理简介

(1)进程概念

进程是操作系统中非常重要的一个概念,进程是程序的执行过程,相对于程序,进程是动态的,在linux系统中,它与用户权限相关,程序与进程并没有一一对应,一个程序可能对应多个进程,例如:

//ps命令列出当前所有对应当前用户的活动进程
xtwy@ubuntu:~$ ps
  PID TTY          TIME CMD
 2087 pts/0    00:00:00 bash
 2105 pts/0    00:00:00 ps
xtwy@ubuntu:~$ bash
//一个bash程序对应多个进程
xtwy@ubuntu:~$ ps
  PID TTY          TIME CMD
 2087 pts/0    00:00:00 bash
 2141 pts/0    00:00:00 bash
 2156 pts/0    00:00:00 ps

子进程与父进程:一个进程产生另外一个进程,产生的进程称为子进程,生成另外一个进程的进程称为父进程。

//ps -l显示长格式进程信息
//其中PID表示进程ID,PPID表示其父进程ID
xtwy@ubuntu:~$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2087  2085  0  80   0 -  1443 wait   pts/0    00:00:00 bash
0 S  1000  2141  2087  0  80   0 -  1443 wait   pts/0    00:00:00 bash

(3)前台进程与后台进程

前台进程指的是进程在执行时会将命令行阻塞,直到进程执行完毕;后台进程指的是进程在执行时不会阻塞当前命令行,而是在系统后台执行。

//直接ping,作为前台进程执行
root@ubuntu:~# ping www.baidu.com 
PING www.a.shifen.com (115.239.211.112) 56(84) bytes of data.
64 bytes from 115.239.211.112: icmp_seq=1 ttl=128 time=4.50 ms

ctrl+z进入后台

2. 进程管理常用命令

(1) ps命令

  ps 命令常用选项包括:
  (1)a显示所有用户的进程
  (2)u显示用户名和启动时间
  (3)x显示所有进程,包括没有控制终端的进程
  (4)e显示所有进程,包括没有控制终端的进程,较x选项,信息更为简略
  (5)l显示进程详细信息,按长格式显示

下面给出几个演示:
(1)ps -au 显示所有用户进程,并给出用户名和启动时间等详细信息


image.png

(2) ps -aux 显示所有用户进程,包括没有控制终端的进程,并给出用户和和启动埋单等详细信息

image.png
输出格式中对应字段含义:
USER: 进程所有者
PID: 进程号
%CPU: CPU占用率
%MEM: 内存占用率
VSZ:表示如果一个程序完全驻留在内存的话需要占用多少内存空间;
RSS:指明了当前实际占用了多少内存;
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该进程程的状态,有以下值
D: 不可中断的静止
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的进程
N: 低优先序的进程
L: 有记忆体分页分配并锁在记忆体内
START: 进程开始时间
TIME: 执行的时间
COMMAND:所执行的指令

(3) ps -l 按长格式显示进程详细信息


image.png
输出格式对应字段含义:
F 进程的标志, 
S 进程的状态, 
PID 进程的ID, 
PPID 进程的父进程ID,
C 进程的CPU占用率, 
PRI 进程的优先权,
NI 进程的Nice值,
ADDR 进程的地址空间,
SZ 进程占用内存的大小,
WCHAN 进程当前是否在运行,
TTY 进程所属终端,
Time 进程的运行时间,
CMD 进程的命令.

(2) kill 命令

有时候某个进程可能会长期占用CPU资源或无法正常执行或超出运行时间等,此时可能希望人工干预直接将进程杀死,这时候kill命令可以派上用场。

(1)kill pid,关闭进程
有时间kill并不能保证一定会关闭某个进程,例如


image.png

此时可以采用强制关闭的方式
(2)kill -9 pid,强制关闭进程
下面给出了强制进程的演示

image.png

image.png

强制关闭进程后,终端强制退出


(4) 进程的前台后台切换

(1)ctr+c命令终止进程
ping baidu.com -a 命令将一直执行,终端被占用,要终止进程,需要使用ctr+c命令终止当前进程执行

root@ubuntu:/home/xtwy# ping baidu.com -a 
PING baidu.com (180.149.132.47) 56(84) bytes of data.

^C64 bytes from 180.149.132.47: icmp_seq=1 ttl=128 time=138 ms

--- baidu.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 138.291/138.291/138.291/0.000 ms

(2)ctr+z命令挂起进程

root@ubuntu:/home/xtwy# ping baidu.com -a 
PING baidu.com (180.149.132.47) 56(84) bytes of data.
^Z
[1]+  Stopped                 ping baidu.com -a
root@ubuntu:/home/xtwy# jobs
[1]+  Stopped                 ping baidu.com -a

(3)fg命令将进程转到前台执行

root@ubuntu:/home/xtwy# fg
ping baidu.com -a
64 bytes from 180.149.132.47: icmp_seq=2 ttl=128 time=135 ms
64 bytes from 180.149.132.47: icmp_seq=3 ttl=128 time=139 ms
64 bytes from 180.149.132.47: icmp_seq=4 ttl=128 time=135 ms
^Z
[1]+  Stopped                 ping baidu.com -a

(4)linux命令后台执行

command<空格>&
1、编写shell脚本:test.sh

#!/bin/bash
while [ true ]; do
/bin/sleep 1
echo hello >>~/test.log
done

2、并且放入后台运行:
./test.sh &

3、使用tail -f 命令跟踪日志。

(5)jobs命令查看任务

root@ubuntu:/home/xtwy# jobs
[1]+  Running                 ping baidu.com -a &

ps和jobs区别:

jobs:该命令用于查看当前终端后台运行的任务。
ps:该命令用于查看瞬间进程的动态。

(5) top命令动态显示进程信息

top命令动态显示进程信息,可以对进程的CPU、内存使用情况进行动态监测


image.png

这里写图片描述

  1. 计划任务的设定

crontab周期性运行作业

在linux上由crond 来周期性的执行指令列表, 执行的任务称为cron job, 多个任务就称为crontab

开启Crontab服务

检查是否安装:
crontab -l

安装:
yum install crontabs

查看服务状态
service crond status

开启服务
service crond start

crontab -e

crontab -e 命令可以在vi中编辑任务, 如下面代码每一分钟向文本写入当前日期

* * * * * date >> ~/log.txt

创建任务后, 可以用 crontab -l 查看当前用户的任务列表,可以用 crontab -r  删除该用户的计时器设置。

命令格式如下:

  • *  *  *  *  command
    分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0代表星期天)  命令

例子:

每晚21:30重启apache
30 21 * * *  service httpd restart

每月的1, 10, 22日的4:55分重启apache, 用,号分割
55 4 1,10,22 * * service httpd restart

每月的1到10日重启apache, 用-号表示区间
* * 1-10 * * service httpd restart

每隔2分钟重启apache , 这里的 */2 号 表示从0.0秒开始每隔2分钟执行
*/2 * * * * service httpd restart

每晚11点到早上7点每隔1小时重启服务器, 注意分钟是用0而不是* 假如是*则代表每分钟都在执行
0 23-7/1 * * * service httpd restart

每天18点到23点每隔30分钟重启服务器, 两种写法都可以
*/30 18-23 * * * service httpd restart
0,30 18-23 * * * service httpd restart
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 前言 只有光头才能变强 回顾前面: 看完这篇Linux基本的操作就会了 Linux用户和权限管理看了你就会用啦 这...
    Java3y阅读 708评论 0 8
  • 进程相关概念 内核的功能 进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等。 process 进程,正...
    夹克K阅读 979评论 0 1
  • Linux进程管理原理 Linux的进程管理,就是对硬件各资源进行分配、调度、销毁等工作,其主要部件的管理为:CP...
    魏镇坪阅读 1,203评论 0 6
  • 进程 是 Unix 和 Linux 系统中对正在运行中的应用程序的抽象,通过它可以管理和监视程序对内存、处理器时间...
    rollingstarky阅读 6,706评论 0 5
  • ​孩子们的“小木粒之家”发出哭闹声。两个三四岁的孩子站在一起,其中一个黑衣男孩伸手抓另一个胖女孩儿的脸。 胖女孩大...
    羽宙儿阅读 148评论 0 0