Linux进程管理与监控

news2024/11/16 13:35:27

一、相关概念

1、进程的的基本定义

在自身的虚拟地址空间运行的一个独立的程序,从操作系统的角度来看,所有在系统上运行的东西,都可以称为一个进程

2、进程的分类   

系统进程:可以执行内存资源分配和进程切换等管理工作;该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。

用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。         

交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。         

批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。         

守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。例如:(1)httpd进程,一直处于运行状态,等待用户的访问;(2)crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。

二、涉及进程的相关指令

在linux系统中,进程ID(用PID表示)是区分不同进程的唯一标识,它们的大小是有限制的,最大ID为32768,用UID和GID分别表示启动这个进程的用户和用户组。所有的进程都是PID为1的init进程(centos7.x版本是systemd进程)的后代。内核在系统启动的最后阶段启动init进程,因而,这个进程是linux下所有进程的父进程,用PPID表示父进程。

1、top指令

具体每个参数的含义在常用指令集合有详细介绍了,另外补充一下,在top命令下摁“F”可以定制功能,有“*”是已经定制的,按空格键可以定制,按ESC退出。

2、ps指令

ps -ef指令下会显示此时进程的信息,中括号括起来大部分一般是系统进程,系统进程一般排在前面,用户一般无法参与。

另外还有常用的ps -aux命令显示更详细一些。

ps -ef|grep sshd  #过滤查看某进程(sshd)的信息

3、pgrep指令

pgrep是通过程序的名字来查询进程PID的工具,支持模糊匹配,它通过检查程序在系统中活动的进程,输出进程属性匹配命令行上指定条件的进程的ID

pgrep -f sshd    #查看sshd进程对应的所有ID

ps -ef|grep sshd  #像之前提到的ps指令也可以查看,但不够简洁

4、lsof指令

经常用来查看某个进程打开多少文件,解决某个进程超过最大值而可能出现诸多问题。

lsof -p PID     #PID是进程号,通过进程号显示程序打开的所有文件及依赖相关进程

lsof -i     #通过监听指定的协议、端口、主机等信息,显示符合条件的进程信息。一个端口对应的那些进程,例如lsof -i :80/25/22    lsof -i tcp:80/25/22

lsof -c 进程名称    #例如sshd,类似PID,但比-p显示更多    

lsof -c sshd|wc -l     #查看sshd打开了多少个文件

5、kill指令

用kill终止一个进程

kill [信号类型] 进程PID     

信号类型有很多种,可以通过kill –l查看所有信号类型。常用的信号类型有SIGKILL,对应的数字为9,还有SIGTERM和SIGINT,对应的数字分别为15和2。

kill -9 进程PID    #表示强制结束进程。   

kill -2 进程PID    #表示结束进程,但是并不是强制性的,常用的ctrl+c组合键发出的就是一个kill -2的信号。

kill -15 进程PID    #表示正常结束进程,是kill的缺省选项,也就是kill不加任何信号类型时,默认类型就是15。

kill -0 进程PID    #写脚本时候用,对服务、进程的状态进行试探,对一个进程进行是否存在。执行-0后,通过  echo $?  指令,返回值为0则执行成功,其他数字是执行不成功。

6、killall指令

用killall终止一个进程。

killall也是关闭进程的一个命令,与kill不同的是,killall后面跟的是进程的名字,而不是进程的PID,因而,killall可以终止一组进程

killall [信号类型] 进程名称    #信号类型与kill一致,进程名称例如java、httpd、mysqld、sshd、sendmail等。 

 三、任务调度进程crond

1、相关概念

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似。

2、分类     

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

(1)系统任务调度

系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。当然还有cron.各种副文件,都是系统直接配置好的,可以自己修改。

(2)用户任务调度

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

3、crond的使用(针对用户任务调度)

(1)crontab常用的使用格式

crontab [-u user] [file]

crontab [-u user] [-e /-l / -r /-i ]    #没有跟用户默认执行当前用户

常用组合: crontab -e ;crontab -l

选项含义如下:

-u user:用来设定某个用户的crontab服务,例如,“-u ixdba”表示设定ixdba用户的crontab服务,此参数一般由root用户来运行。 

file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。 -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。

-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。

-i:在删除用户的crontab文件时给确认提示。

(2)crontab文件的含义

用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

在以上各个字段中,还可以使用以下特殊字符:

星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”。

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”。

正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。

(3)crontab应用举例

0   */3   *    *    *    /usr/local/apache2/apachectl restart     #表示每隔3个小时重启apache服务一次。  

30  3  *  *  6  /webdata/bin/backup.sh   #表示每周六的3点30分执行/webdata/bin/backup.sh脚本的操作。  

0  0  1,20  *  *   fsck /dev/sdb8   #表示每个月的1号和20号检查/dev/sdb8磁盘设备。  

10  5  */5  *  *   echo "">/usr/local/apache2/log/access_log 表示每个月的5号、10号、15号、20号、25号、30号的5点10分执行清理apache日志操作。

(4)使用crontab工具的注意事项

<1>注意环境变量问题:有时我们创建了一个crontab(他不会自动加载环境变量),但是这个任务却无法自动执行,而在命令行手动执行这个任务却没有问题,这种情况一般是由于在crontab文件中没有配置环境变量引起的。这个时候我们需要在自己的/var/spool/cron/crontab文件下手动添加环境变量,例如:source /etc/profle(系统全局环境变量) source /root/.bashrc(用户环境变量)

问题比如在shell脚本里可以执行,但是放到crontab里面就不行了。

<2>注意清理系统用户的邮件日志:可以在crontab文件中设置如下形式,忽略日志输出:

0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1

<3>系统级任务调度与用户级任务调度:系统级任务调度主要完成系统的一些维护操作(比如定时重启机器),用户级任务调度主要完成用户自定义的一些任务,可以将用户级任务调度放到系统级任务调度来完成(不建议这么做),但是反过来却不行。 

(5)使用事例

<1>在root用户下,给huoserver用户进行用户级任务调度工作,首先进入编辑页面。

<2>写入的大致内容为:每个月的5号、10号、15号、20号、25号、30号的5点10分执行清理日志操作。

<3>这时我们发现在/var/spool/cron/  目录下出现了我们所设置的用户名的文件,内容也是我们刚才输入的。

<4>我们可以用tail -f /var/log/cron  命令来查看定时执行的任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1637964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习四

合集 ChatGPT 通过图形化的方式来理解 Transformer 架构 翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习一翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深度学习二翻译: 什么是ChatGPT 通过图形化的方式来理解 Transformer 架构 深…

基于Python的人脸识别系统设计与实现(论文+源码)_kaic

基于Python的人脸识别系统设计与实现 摘 要 随着人工智能的发展,人脸识别系统在我们的生活中越来越被广泛应用。人脸识别系统是指能够从数字图像或视频源中识别人的技术。人脸识别系统可以通过多种方法工作&#xff0c;但是&#xff0c;它们通常是通过将给定图像中的面部特征与…

IDEA基于Maven构建项目

IDEA基于Maven构建项目 一、Maven简介 Apache Maven 是一个软件项目管理和理解工具。基于项目对象模型的概念&#xff08;POM&#xff09;&#xff0c;Maven 可以从中心信息中管理项目的构建、报告和文档。 Apache Maven 可以用于构建和管理任何基于 Java 的项目。 下载地址…

Axure如何调起浏览器的打印功能

Axure如何调起浏览器的打印功能 答&#xff1a;javascript:window.print(); 不明白的继续往下看 应用场景&#xff1a; 原型设计中&#xff0c;页面上的打印按钮&#xff0c;需要模拟操作演示&#xff0c;需要点击指定的按钮时&#xff0c;唤起浏览器的打印功能&#xff08…

JDBC连接MySQL8 SSL

1.创建用户并指定ssl连接 grant all on . to test% identified by imooc require SSL(X509); 2.查看是否使用ssl SELECT ssl_type From mysql.user Where user"test" 3.配置用户必须使用ssl ALTER USER test% REQUIRE SSL(X509); FLUSH PRIVILEGES; 注意&#xff…

aardio封装库) 微软开源的js引擎(ChakraCore)

前言 做爬虫肯定少不了JavaScript引擎的使用&#xff0c;比如在Python中现在一般用pyexecjs2来执行JavaScript代码&#xff0c;另外还有一些其他执行JavaScript的库&#xff1a; https://github.com/eight04/node_vm2: rpc调用nodejs&#xff0c;需要安装nodehttps://github.…

【Spring 】Spring MVC 入门Ⅱ

Spring MVC 入门Ⅱ 一、接收Cookie / Session 这两者都是用来保存用户信息的&#xff0c;但不同的是&#xff1a; Cookie存在客户端 Session存在服务器 Session产生时会生成一个唯一性的SessionID&#xff0c;这个SessionID可以用于匹配Session和Cookie SessionID可以在Cooki…

java+jsp+Oracle+Tomcat 记账管理系统论文(二)

⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️ ➡️点击免费下载全套资料:源码、数据库、部署教程、论文、答辩ppt一条龙服务 ➡️有部署问题可私信联系 ⬆️⬆️⬆️​​​​​​​⬆️…

Pandas入门篇(二)-------Dataframe篇4(进阶)(Dataframe的进阶用法)(机器学习前置技术栈)

目录 概述一、复合索引&#xff08;一&#xff09;创建具有复合索引的 DataFrame1. 使用 set_index 方法&#xff1a;2.在创建 DataFrame 时直接指定索引&#xff1a; &#xff08;二&#xff09;使用复合索引进行数据选择和切片&#xff08;三&#xff09;重置索引&#xff08…

搜索引擎的设计与实现参考论文(论文 + 源码)

【免费】搜索引擎的设计与实现.zip资源-CSDN文库https://download.csdn.net/download/JW_559/89249705?spm1001.2014.3001.5501 搜索引擎的设计与实现 摘要&#xff1a; 我们处在一个大数据的时代&#xff0c;伴随着网络信息资源的庞大&#xff0c;人们越来越多地注重怎样才能…

土壤侵蚀分布数据、土壤侵蚀强度、土壤类型分布、降水量分布、坡度坡向数据、植被覆盖度、土地利用数据、土壤质地分布

引言 土壤侵蚀是指土壤或成土母质在外力作用下被破坏剥蚀、搬运和沉积的过程。土壤侵蚀强度是根据土壤侵蚀的实际情况&#xff0c;按轻微、中度、严重等分为不同级别。中国是世界上土壤侵蚀最严重的国家之一&#xff0c;主要发生在黄河中上游黄土高原地区、长江中上游丘陵地区和…

java面试(微服务)

SpringCloud五大组件 Nacos&#xff1a;注册中心Ribbon&#xff1a;负载均衡Feign&#xff1a;远程调用sentinel&#xff1a;服务熔断Gateway&#xff1a;网关 注册中心 Eureka Nacos 负载均衡 Ribbon负载均衡流程 Ribbon的负载均衡策略 RoundRobinRule&#xff1a;简单的…

2024五一杯数学建模B题思路代码文章教学-交通需求规划与可达率问题

交通需求规划与可达率问题 问题总结&#xff1a; 问题一&#xff1a;在一个小型交通网络中&#xff0c;给定的起点和终点之间的交通需求需分配到相应路径上。目标是最大化任意一条路段出现突发状况时的交通需求期望可达率。 问题二&#xff1a;在一个较大的交通网络中&#xff…

C++浮点数format时的舍入问题

C浮点数format时的舍入问题 首先有这样一段代码&#xff1a; #include <iostream> #include <stdio.h> using namespace std;int main() {cout << " main begin : " << endl;printf("%.0f \r\n", 1.5);printf("%.0f \r\n&…

ASP.NET通用作业批改系统设计

摘  要 该系统采用B/S结构&#xff0c;以浏览器方式登陆系统&#xff0c;用ASP.NET作为开发语言&#xff0c;数据库则使用Microsoft SQL Server 2000实现。《通用作业批改系统》包括了学生子系统、教师子系统、管理员子系统三大模块&#xff0c;该系统主要完成学生&#xff…

手撕spring框架(3)

手撕spring框架&#xff08;3&#xff09; 相关系列 手撕spring框架&#xff08;1&#xff09; 手撕spring框架&#xff08;2&#xff09; InitializingBean 接口详解 什么是 InitializingBean 接口&#xff1f; InitializingBean 接口是 Spring 框架中的一个接口&#xff0c…

Vue3管理系统-路由设置+表单校验

一、配置路由规则 1.在views 下创建文件夹分类,搭好架子 2.配置路由规则 在router下Index.js import { createRouter, createWebHistory } from vue-routerconst router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [//一级路由//这里可以…

GitLab服务器的搭建

GitLab服务器的搭建 为公司搭建一台代码托管服务器 服务器规格&#xff1a;2vCPUs4GiB20G 操作系统&#xff1a;RockyLinux8.8 下载软件 gitlab官网&#xff1a;http://about.gitlab.com 在官网下载比较麻烦&#xff0c;推荐从《清华大学开源软件镜像站》下载 清华大学开…

java线上问题排查之CPU使用率过高(一)【保姆级教程】

线上故障排查&#xff0c;主要包括CPU&#xff0c;磁盘&#xff0c;内存以及网络。基本上出问题就是 df、free、top 三连&#xff0c;然后依次 jstack、jmap df&#xff1a;用于显示文件系统的磁盘空间使用情况。 df -h&#xff1a;以人类可读的方式显示磁盘空间使用情况。 d…

微软如何打造数字零售力航母系列科普06 - 如何使用微软的Copilot人工智能

如何使用微软的Copilot人工智能&#xff1f; Copilot和ChatGPT有很多相似之处&#xff0c;但微软的聊天机器人本身就有一定的优势。以下是如何对其进行旋转&#xff0c;并查看其最引人注目的功能。 ​​​​​​​ &#xff08;资料来源&#xff1a;Lance Whitney/微软&…