进程和计划任务管理

一、进程和程序的关系

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

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

二、基本命令

(1)ps命令:查看系统进程

ps aux 查看进程占用CPU和内存的百分比;

ps -ef 显示系统中的信息

ps -ef | grep 服务名     用来判断某个服务是否处于启动状态

(2)top命令:动态查询系统进程

top -u 指定用户名

top -p 指定进程号

(3)pgrep命令:查看进程信息

pgrep -l 显示进程

-U 指定特定用户

-t 指定终端

(4)pstree命令:以树形结构列出进程信息

三、进程的启动方式

手工启动

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

后台启动:在命令行位加入“&”符号

Ctrl+z:切换至后台

fg将后台进程切回前台;

bg将后台暂停的进程调至后台运行;

jobs查看后台有哪些进程

调度启动

(1)使用at命令,设置一次性任务计划(at命令需要进行yum安装)

服务脚本:/etc/init.d/atd

设置格式:at 18:40 设置当天的任务计划可不加日期

基本操作:Ctrl+D 保存退出

atq 查询现有的一次性任务计划

atrm+任务序号 删除第几项任务

(2)用crontab命令,设置周期性计划任务

/var/spool/cron/   存放定时任务的目录

crontab -l 查看当前用户的定时任务

crontab -e 进入编辑状态,相当于打开vim,命令要用绝对路径

crontab -u 指定用户设置定时任务,只有root用户可用

crontab -r 删除定时任务

* * * * *   用户名   命令(绝对路径)

eg:

# * * * * * /bin/echo"111111" >> /tmp/yunjisuan.txt      */5 表示每隔五分钟

回车

此时,crontab -e中产生新的定时任务

# ll /var/spool/cron/

出现root用户的定时文件

终止进程

kill,killall,pkill命令

kill 需要根据PID号杀进程

kill PID号=====温柔版本

‘-2’即Ctrl+c‘-9’发送强制终止信号‘-15’发送正常终止信号 先使用-15 再使用-9

killall 需要根据服务名杀进程,因为会把子进程杀除

killall -9 服务名=======强杀

pkill 需要根据服务名杀进程,比较强力,但不如killall程度大,不杀子进程; 还能根据终端名杀进程

pkill -kill 服务名======强杀

pkill -kill -t 终端名====强杀

四、Linux操作系统垃圾回收机制原理

通常情况下,子进程由父进程生成;因此,子进程一旦执行结束,默认由他的父进程管理。如果父进程比子进程执行结束的还早,那么子进程会交给父进程的父进程来管理。

加入所有父进程都结束了,默认会交给所有父进程的总进程init进程来管理。

(1)僵尸进程的产生

子进程执行结束,默认父进程管理;父进程比子进程先结束,由父进程的父进程进行管理;若,父进程执行结束,但是父进程未连接到其父进程管理其子进程

导致子进程被遗忘,无管理;此时,子进程为僵尸进程;

代码由开发编写,父进程结束后由父进程的父进程对子进程进行管理的代码也是由开发编写的,如果开发忘记编写,导致服务器运行这个程序,就会发生子进程未被管理的情况

(2)僵尸进程的后果

最可怕的后果并不是资源的占用,因为一个进程占不了多少资源,严重的是,僵尸进程会永远占用PID号(操作系统的PID号有上限 65535),如果达到上限,Linux会默认什么服务都不能开启

(3)排查僵尸进程

方法一:

# top

第二行最后一个单词zombie,僵尸

方法二:

ps aux

查看STAT下,若出现Zz的进程,出现僵尸进程

# ps aux | grep "^Zz$" | wc -l

方法三:

# ps -ef -o pid,stat ,cmd=======-o 指定输出的字段名  cmd 显示命令

五、计划任务管理 crond

(1)Linux系统自身定期执行的任务工作:系统周期性自行执行的任务工作。

/var/log/messages*     #系统的日志,每七天自动切割

用户执行的任务工作:某个用户或系统管理员定期要做的任务工作

定时任务可以有五个时间段:*分 *时 *日 *月 *周

* * * * *   用户名  命令(绝对路径)

(2)at命令,设置一次性任务计划,前提是对应的系统服务atd必须已经运行;计划任务执行任务的时间必须安排在当前系统时间后。

(3)crontab命令,设置周期性计划任务

crontab -l 查看当前用户的定时任务

crontab -e 进入编辑状态,相当于打开vim,命令要用绝对路径

crontab -u 指定用户设置定时任务,只有root用户可用

crontab -r 删除定时任务

主要设置文件

全局设置文件,位于文件:/etc/crontab

系统默认的设置,位于目录:/etc/cron.*/

用户定义的设置,位于文件:/var/spool/cron/用户名

(4)crond定时任务配置文件 /etc/crontab

SHELL=/bin/bash用/bin/bash去解析定时任务文件里的命令

PATH 环境变量 告诉Linux去哪里找命令

如果PATH里的变量赋值为空,外置命令不能执行,内置命令可以执行,解决方法:手动写路径找回

(定时任务配置文件里的PATH环境变量与Linux操纵系统的PATH不一致,导致有的任务在Linux能找到,但定时任务里找不到,所以要求定时任务里的命令必须用绝对路径)

export 全局声明,将后面的变量进行全局生效;此时,同一个父进程下的所有子进程生效,但再生成的子进程就不生效了。

MAILTO=root 指定邮件发送用户 定时任务有数据输出时,会给root发邮件

Service postfix status 查看邮件服务状态

HOME=/  定时任务启动路径永远从根开始

(5)对用户设置定向任务

要求:要关注定时任务环境变量,命令起始点在根下;

定时任务不能有任何屏幕输出,不能产生垃圾输出,垃圾文件重定向到> /dev/null 2>&1或>/dev/null 2 > /dev/null

如果关闭邮件服务,就不会产生邮件,邮件发不出去,定时任务会产生屏幕输出的话,就会在/var/spool/postfix/maildrop/下生成许多小文件,小文件过多会让服务器无法工作

因为 ll -i 中查看的inode号有上限,一旦inode达到上限就无法创建文件(即使磁盘还有空间)

(6)crond时间数值表示方法

分钟:00-59

小时:00-23 (24点用00表示)

日:1-31

月:1-12

周:0-6 (周日代表0)

* 表示任意时间

/ 指定间隔的时间频率

5,15 表示5点、下午3点

5-15 表示5点到下午3点

Linux系统——进程和计划任务管理的更多相关文章

  1. linux中进程和计划任务管理

    进程和计划任务管理 1. 程序和进程的关系 程序:保存在硬盘.光盘等介质中的可执行代码和数据:静态保存的代码 进程:在 CPU 及内存中运行的程序代码:动态执行的代码:父.子进程:每个进程可以创建一个 ...

  2. Linux 系统管理——进程和计划任务管理

    一.  程序和进程关系 1.程序 保存硬盘.光盘等介质中的可执行代码和数据 静态保存的代码 2.进程 在CPU及内存运行的程序代码 动态执行的代码 父.子进程:每一个进程可以创建一个或多个进程 二.静 ...

  3. Linux系统管理10——进程和计划任务管理

    Linux系统管理10——进程和计划任务管理 一.程序和进程的关系 1.程序 ·保存在硬盘.光盘等介质中的可执行代码和数据 ·静态保存的代码 2.进程 ·在CPU及内存中运行的程序代码 ·动态执行的代 ...

  4. linux系统的任务计划crontab使用详解

    linux系统的任务计划crontab使用详解 其实大部分系统管理工作都是通过定期自动执行某一个脚本来完成的,那么如何定期执行某一个脚本呢?这就要借助linux的cron功能了. 关于cron任务计划 ...

  5. Linux下性能监控、守护进程与计划任务管理

    目录 一:监视系统进程(ps .top) 二:查看网络连接信息 (netstat) 三:文件进程.端口关联(lsof) 四:计划任务管理(at .crontab) at crontab 一:监视系统进 ...

  6. Linux系统中的计划任务

    在系统的工作管理中,我们经常会有需要去告诉电脑某些特定的时间执行一些操作,比如定时提醒工作人员需要做什么事情,或者在每天凌晨进行文件备份等等.这就需要某些命令来达成计划任务. 计划任务可以大体上分成两 ...

  7. linux系统下添加计划任务执行php文件方法

    在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时上下架.我们以php文件为例,讲解linux下的计划任务,来看看吧   在web开发过程中,经常需要设定一些定期执行的任务,比如商品定时 ...

  8. Linux进程和计划任务管理

    1.笔记: 去掉头部:ps -aux - - no -heade 默认信号:15 强制:9 在命令前些一个nohup不再占用终端 date -s:修改时间 ntpdate pool.ntp.org:同 ...

  9. Linux系统管理第六次作业 进程和计划任务管理

    1.通过ps命令的两种选项形式查看进程信息 [root@localhost ~]# ps aux USER        PID %CPU %MEM    VSZ   RSS TTY      STA ...

随机推荐

  1. VS2005环境下采用makefile编译、使用libjpeg.lib函数库

    1.从www.ijg.org下载源码,解压后得到文件夹jpeg-8d 2.在文件夹里新建jconfig.h文件,将jconfig.vc里的内容拷到jconfig.h中 3.编译. Run->CM ...

  2. hdu 3085(双向bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3085 思路:双向广搜,每次从M出发,搜三步,从G出发,搜一步,然后就是判断是否走到对方已经走过的格子, ...

  3. GSAP 官方文档(结贴)

    好久没写GSAP的教程的(其实我也不懂哈哈),国内也没什么人用,不对动画要求特别高的话,其实也没必要用GSAP,现在工作上没用到这个东西,也懒得写了,所以有问题的话去找一下greensock的官方文档 ...

  4. smarty 总结和分析

    虽然smarty现在已经废弃不用,但是它的原理我们需要了解一下,这也是TP框架的一部分原理,它把前后端分离开,这样前端只需要写静态网页,后端只需要处理数据库和php文件就可以了,phpcms的思路也大 ...

  5. CEF3 HTML5 audio标签为什么不能播放mp3格式的音频文件

    CEF3 HTML5 audio标签 为什么不能播放mp3格式的音频文件   原因略.   解决方法: 找一个最新版的chrome ,我用的是24版本.路径 C:\Documents and Sett ...

  6. DataSnap服务器生成的ID自动更新到客户端

    很久没有去动Delphi了,突然兴起做个小程序,一个表的ID,在服务器端的应用服务器上生成,如何刷新到客户端? 查看了TDataSetProvider的Options属性,比以前增加了一个poProp ...

  7. Tomcat----->软件密码学基础配置tomcat http连接器 https

    公钥只能私钥解开,私钥只能公钥解开. 类似于别人给你一个盒子,你用他的盒子和自己盒子加密,他手中有他的钥匙和自己的钥匙,可以解开就既能证明是你发的也能相信内容. 每个数据有自己的数据指纹,数据指纹是由 ...

  8. HDU5667—Sequence(对数转化)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5667 题目意思:f1=1,i=1 f2=2 ,i=2 fi=a^b*f[i-1]^c*f[i-2] i ...

  9. HUD2647 Reward_反向建图拓扑排序

    HDU2647 Reward 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2647 题意:老板要发奖金了,有n个人,给你m对数,类似a b,这样的一对 ...

  10. c#自定义控件做漂亮的列表

    效果图如下: 完整项目代码下载: 点击下载