Linux进程和任务管理
process 进程
进程-线程等
Job
前台--后台:
后台任务"与"前台任务"的本质区别只有一个:是否继承标准输入
联机--脱机 -以及crontab
脱机管理主要是针对终端异常断开的情形。 脱机工作:离线后台运行
通常使用nohup命令来使得脱机或注销之后,Job依旧可以继续运行。也就是说nohup忽略所有挂断(SIGHUP)信号
00. 无论是前台作业还是后台作业,两者都来自当前的shell,是当前shell的子程序。
下面是两者的定义。
前台作业:可以由用户参与交互及控制的作业我们称之为前台作业。
后台作业:在内存可以自运行的作业,用户无法参与交互以及使用[ctrl]+c来终止,只能通过bg或fg来调用该作业。
a、 command & 直接让作业进入后台运行
b、 [ctrl]+z 将当前作业切换到后台
c、 jobs 查看后台作业状态
d、 fg %n 让后台运行的作业n切换到前台来
d、 bg %n 让指定的作业n在后台运行
e、 kill %n 移除指定的作业n
"n" 为jobs命令查看到的job编号,不是进程id。
每一个job会有一个对应的job编号,编号在当前的终端从1开始分配。
01. crontab命令被用来提交和管理用户的需要周期性执行的任务。crond的概念和crontab是不可分割的。crontab是一个命令,
常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。
该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。而crond正是它的守护进程。
Linux下的任务调度分为两类:系统任务调度和用户任务调度
在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件
所有用户定义的crontab文件都被保存在/var/spool/cron目录中
02.crontab文件
crontab支持两种状态:
a.直接编写计划任务;
b.使用目录的方式,放在目录里面的都会定时执行,定时目录可在/etc/crontab中设定
第一步:写cron脚本文件,命名为crontest.cron。
15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令
第二步:添加定时任务。
执行命令 “crontab crontest.cron”
第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本 解释:
* * * * * /bin/sh /scripts/yy.sh
分 时 日 月 周 命令和文件路径
(00-59) (0-23) (1-31) (1-12) (0-6)
所用符号表示意思
* 星号每的意思
- 减号连续一段时间,如:00 17-19 * * * cmd 每天下午17点,18点,19点执行一次命令
, 逗号多个时间段,如:00 10-11,17-19 * * * cmd 每天的上午10,11点整,下午的17,18,19点整执行一次命令
/n n代表数字,指每隔n时间执行一次,如: */2 * * * * cmd 每隔2分钟执行一次命令
注意事项:
创建了一个crontab,但是这个任务却无法自动执行,而手动执行这个任务却没有问题,
这种情况一般是由于在crontab文件中没有配置环境变量引起的。在 crontab文件中定义多个调度任务时,
需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个任务时,是在当前shell环境下进行的,程 序当然能找到环境变量,
而系统自动执行任务调度时,是不会加载任何环境变量的,因此,就需要在crontab文件中指定任务运行所需的所有环境变量,这 样,系统执行任务调度时就没有问题了。
不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,
除了一些自动设置的全局变量。所以注意如下:
1)脚本中涉及文件路径时写全局路径;
2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:
cat start_cbp.sh
#!/bin/sh
source /etc/profile
export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf
/usr/local/jboss-4.0.5/bin/run.sh -c mev &
新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行
仅仅执行一次 at 守护进程 atd
用户准备退出 session
系统向该 session 发出SIGHUP信号
session 将SIGHUP信号发给所有子进程
子进程收到SIGHUP信号后,自动退出
上面的流程解释了,为什么"前台任务"会随着 session 的退出而退出:因为它收到了SIGHUP信号。
那么,"后台任务"是否也会收到SIGHUP信号?
这由 Shell 的huponexit参数决定的。
$ shopt | grep huponexit
执行上面的命令,就会看到huponexit参数的值 大多数Linux系统,这个参数默认关闭(off)。因此,session 退出的时候,不会把SIGHUP信号发给"后台任务"
守护进程
daemon 守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务
一般在命名后面会加一个d,表示守护进程
1.service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,
它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
centos
启动某个独立的守护程序服务的方式
2.etc/init.d/syslog start
建议大家将service命令
替换为/etc/init.d/mysqld stop(因为有一些linux的版本不支持service)
进程
1.进程分类
01.守护进程
前台进程
后台进程
02.父进程
子进程
03.系统进程
用户进程
2.进程状态
基本状态
就绪状态
运行状态
阻塞状态
转换过程
就绪状态---> 运行状态-
运行状态---->阻塞状态
运行状态--->就绪状态
阻塞状态---> 就绪状态 <唤醒>
3.进程的查看
ps
pstree
top
4.进程的组成
程序
数据
进程控制块(PCB)
包含<标志信息、说明信息、现场信息、管理信息>
结构: 线性 索引 链式
5.进程控制 相关内容 :
作业控制
Linux进程和任务管理的更多相关文章
- Linux进程管理及while循环
目录 进程的相关概念 进程查看及管理工具的使用 Linux系统作业控制 调整进程优先级 网络客户端工具 bash之while循环 20.1.进程类型 守护进程 daemon,在系统引导过程中启动的进程 ...
- 如何灵活运用Linux 进程资源监控和进程限制
导读 每个 Linux 系统管理员都应该知道如何验证硬件.资源和主要进程的完整性和可用性.另外,基于每个用户设置资源限制也是其中一项必备技能. 在这篇文章中,我们会介绍一些能够确保系统硬件和软件正常工 ...
- TODO:Golang Linux进程退出说明
TODO:Golang Linux进程退出说明 Golang使用os.Exit(code)进程退出导致当前程序退出并返回给定的状态代码.传统上,code代码为零表示成功退出,非零错误退出. sysca ...
- Linux进程管理子系统分析【转】
本文转载自:http://blog.csdn.net/coding__madman/article/details/51298732 Linux进程管理: 进程与程序: 程序:存放在磁盘上的一系列代码 ...
- 12个Linux进程管理命令介绍(转)
12个Linux进程管理命令介绍 [日期:2015-06-02] 来源:Linux中国 作者:Linux [字体:大 中 小] 执行中的程序在称作进程.当程序以可执行文件存放在存储中,并且运行的 ...
- linux 进程管理相关内容
简介 当我们运行程序时,Linux会为程序创建一个特殊的环境,该环境包含程序运行需要的所有资源,以保证程序能够独立运行,不受其他程序的干扰.这个特殊的环境就称为进程. 每个 Linux 命令都与系统中 ...
- Linux - 进程查看与管理
标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...
- Linux进程关系
Linux进程关系 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux的进程相互之间有一定的关系.比如说,在Linux ...
- Linux进程基础
Linux进程基础 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和 ...
随机推荐
- pycharm中查看源码的快捷键
将光标移动至要查看的方法处,按住ctrl 点击鼠标左键,即可查看该方法的源码
- 基于junit的单元测试类编写
首先定义抽象类BaseTest package com.geostar.gfstack.operationcenter.common.util; import com.google.gson.Gson ...
- BZOJ3165[Heoi2013]Segment——李超线段树
题目描述 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段.记第i条被插入的线段的标号为i. 2.给定一个数k,询问与直线 x = k相交的线段中,交点最靠上的线段的编号. 输入 第一行 ...
- BZOJ1412[ZJOI2009]狼和羊的故事——最小割
题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场:狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈 ...
- 「NOI2003」逃学的小孩
传送门:>HERE< 题意:给出一棵树(带权),要从一个节点C先走到距离它近的一个节点B,再走到A,要求最坏情况下的总路程(即最长). 解题思路: 乍一看,A,B,C都没给出,这怎么求? ...
- MT【309】正弦的平方差公式
在锐角$\Delta ABC$中,角$A,B,C$所对的边分别为$a,b,c$,且满足$b^2-a^2=ac$,则$\dfrac{1}{\tan A}-\dfrac{1}{\tan B}$ 的取值范围 ...
- 【HDU - 4345 】Permutation(DP)
BUPT2017 wintertraining(15) #8F 题意 1到n的排列,经过几次置换(也是一个排列)回到原来的排列,就是循环了. 现在给n(<=1000),求循环周期的所有可能数. ...
- zabbix python 微信告警脚本
测试zabbix的微信告警耗费了大量时间,使用了开源工具(OneOaaS weixin-alert).shell脚本工具(手动执行正常,服务器调用失败),均没有实现相关功能以下是自己优化过的Pytho ...
- ⌈洛谷4735⌋⌈BZOJ3261⌋最大异或和【可持久化01Trie】
题目链接 [BZOJ传送门] [洛谷传送门] 题解 终于学会了可持久化trie树了.感觉并不是特别的难. 因为可持久化,那么我们就考虑动态开点的trie树. 都知道异或操作是有传递性的,那么我们就维护 ...
- poj 3252 Round Numbers(数位dp 处理前导零)
Description The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, P ...