进程管理和定时任务

#进程管理和定时任务
##杀死进程的三种方法 俗称三国杀
kill 需要根据pid号杀进程,这种杀进程的方式比较温柔,
比如在后台运行的进程就不能被这种方式杀死(用来杀进程较多)
kill -9 则是强行杀死进程 和kill -kill效果一样
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190311202729851.png在这里插入图片描述
killall 需要根据服务名杀进程,因为还会把下面的所有子进程都杀了(很少用,因为杀伤力太强)

pkill 也是根据服务名杀进程,也比较强力,但是还是不如killall杀伤力强,因为它不杀子进程。但是他能踢人。(用来踢人较多)
pkill还能根据终端名杀
tty本地实机登录 pts/[0-9]远程连接登录
-t是指定终端 -kill和-9一样都是强杀
在这里插入图片描述

——linux操作系统的垃圾回收机制原理
通常情况下,子进程是由父进程生成的,因此,子进程一旦执行结束,默认由他的父进程来收尸,如果父进程比子进程死的还早,那么子进程默认会交给父进程的父进程来管理(也就是收尸),假如所有父进程都没了,默认会交给所有父进程的总进程,也就是init进程来收尸。

——僵尸进程
如果父进程在死前没来得及通知上级进程来代为收尸,那么子进程就被遗忘了,也就是没人来收尸了。这种情况下,子进程就是僵尸进程。
通常代码都是开发写的,父进程死了通知上级进程来收尸的这个通知代码是开发写的。如果他忘记写了,服务器运行这个程序,就会发生子进程没人收尸的情况。
僵尸进程最可怕的后果并不是资源的占用,因为一个进程占用不了太多的资源。可怕的是僵尸进程会永远占用PID号,然而操作系统PID号是有上限的(上限是65535)。如果不够用了,linux会默认什么服务都开启不了。
——查找僵尸进程的方法
ps aux命令调出来的表格在STAT项,僵尸进程由Zz表示,可以由ps aux | grep “^Zz$” | wc -l
如果不是0则代表有僵尸进程
在这里插入图片描述

ps -ef -o pid,stat只输出pid和stat -o指定输出的字段名
在这里插入图片描述

——定时任务有五个时间段,分别是:分、时、日、月、周
用* * * * *表示。在对应的位置替换数字即可。如果没有则表示任意。

——crontab命令
-u查看指定用户的定时任务
-l是查看当前用户的定时任务
在这里插入图片描述
-r清空当前用户的定时任务(也可指定用户)
-e是进入编辑状态,相当于直接打开了一个vim。(在此编辑模式里命令需要写绝对路径)
在这里插入图片描述
写法格式: * * * * * 具体用户(可省略) 命令字符
分 时 日 月 周 命令字符 按星号对应的时间定时执行后面的命令。
如果时间是五个*星,就是每分钟都去执行后面的命令
*/n n=数字 是每n时间单位执行一次
定时任务原则:1、首先关注环境变量
2、为了定时任务不出错,一律使用绝对路径
3、定时任务不能有任何屏幕输出,有屏幕输出的可以重定向到某个文件里。比如 &> /dev/null
4、定时任务只能有一个重定向,不能有多个重定向。否则定时任务将不被执行。
5、定时任务的起始点都是在/根下

——为什么定时任务命令一定要写绝对路径:因为定时任务配置文件里的PATH环境变量与linux操作系统的PATH不一致。虽然我们写的定时任务命令linux操作系统能找到,但是定时任务找不到。这就可能导致定时任务出错。所以定时任务命令最好用绝对路径。

——/var/spool/cron是存放定时任务的目录,定时任务成功后,会在此目录里多一个名称为当前用户名的文件,此文件就是这个用户名的定时任务。只有超户才能直接修改此文件。
/var/log/cron是定时任务的日志文件
/etc/cron.deny里面直接写用户名,限制此用户使用crontab
/etc/crontab是定时任务的配置文件
在这里插入图片描述
SHELL=/bin/bash是用/bin/bash去解析命令
PATH是环境变量 环境变量的值就是命令存放的路径。只要是一串没有空格的字母,linux都会认为是命令,它就会去环境变量的路径里去找,如果能找到,就会执行。找不到就会提示命令没找到,或者是当成文件或目录去执行。
MAILTO=root是发邮件到root账号,如果定时任务的命令会产生屏幕输出,会把输出以邮件的方式发给root账号
HOME=/ 是启动路径永远从/根开始(也就是说定时任务的执行起点路径是/根)

——如果postfix邮件服务处于关闭状态,然而,定时任务会产生屏幕输出的话,那么邮件就不会再发给root账号,而是会在/var/spool/postfix/maildrop/生成众多小文件。但是每个小文件都会占用inode号,是计算机分配给文件的唯一编码,在磁盘格式化的时候生成。如果inode号达到上限,会造成无法创建文件,硬盘会出现报错为——磁盘空间已满。能否创建文件的因素有两个,一是:df -h查看磁盘容量。二是:df -hi查看inode号情况。
在这里插入图片描述
光解决问题不行,还要预防再次发生,还要制定应急预案,以防下次再出现能及时处理。还要定时排查这个问题,尽量做到不会再出现类似错误。

猜你喜欢

转载自blog.csdn.net/weixin_43880933/article/details/88408352
今日推荐