Linux——进程管理

目录

作业和进程的概念

程序与进程的关系

查看进程信息——ps,top

ps命令

top命令

设置进程的优先级——nice,renice

nice命令

renice命令

查看进程信息——pgrep,pstree

pgrep命令

pstree命令

切换进程——jobs,bg,fg

前台、后台作业

终止进程——kill

计划任务管理——at

计划任务管理——crontab

crontab任务的配置格式

添加crontab调度


作业和进程的概念

        Linux是一个多用户多任务的操作系统。

        多用户是指多个用户可以在同一时间使用计算机系统; 多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。

        为了完成这些任务,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。

程序与进程的关系

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

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

        进程与程序是有区别的进程不是程序,虽然它由程序产生。程序只是一个静态的指令集合,不占系统的运行资源:而进程是一个随时都可能发生变化的、动态的、使用系统运行资源的程序。而且一个程序可以启动多个进程。
        进程:程序的动态执行过程;一个程序可以有多个进程;一个或多个相关进程有时也被称作一个作业

查看进程信息——ps,top

ps命令

用途:显示正在执行的进程统计信息

格式:常用:ps [选项]

常用命令选项

  • -A
  • -a:终端上的所有进程
  • -e:系统中的所有进程
  • -l:长格形式
  • -u:面向用户的格式
  • -x:后台进程的信息

PID:该进程在系统中的数字ID号,在当前系统中是唯一的;

top命令

用途:查看动态的进程排名信息

设置进程的优先级——nice,renice

nice命令

        是反应一个进程优先级状态的值,取值范围是-20至19,一共40个级别。 这个值越小,表示进程“优先级”越高,而值越大“优先级”越低。

        直接运行nice,显示当前程序的运行优先级;

格式:nice [-优先级] 命令

#nice
#0
#nice -n 21 nice

#19
#nice -5 ftp     #调整ftp进程的优先级为5

#nice --5 ftp    #调整ftp进程的优先级为-5

renice命令

对一个正在运行的进程进行nice值的调整。

格式:renice 优先级值 [选项] 命令

常用命令选项

  • -p:进程号所标识进程的优先级
  • -u:指定用户所启动进程的优先级
  • -g:群组

renice 8 -p 2896

查看进程信息——pgrep,pstree

pgrep命令

用途:根据特定条件查询进程PID信息

[root@localhost ~]# pgrep "init"

1

[root@localhost ~]# pgrep -l "log"

2538 syslogd

2541 klogd

3221 login 

pstree命令

用途:以树型结构显示各进程间的关系

[root@localhost ~]# pstree -aup

init,1  

├─acpid,2866  

├─atd,3060  

├─auditd,2516  

│   ├─python,2518 /sbin/audispd  

│   └─{auditd},2517  

├─automount,2842 ……

切换进程——jobs,bg,fg

显示作业命令

jobs -p 进程号      

jobs -l 进程号+作业号

ctrl+Z 挂起当前作业

ctrl+C 终止当前作业

     前台、后台作业

        前台和后台运行作业作业可以在前台,也可以在后台运行,在同时间只能有一个作业在前台运行。前台作业是指正对它进行交互操作的作业,它从键盘接受输入,并将输出送往屏幕。另一方面,后台作业不接受中断的输入。它们在运行时不需要交互操作,只是默默运行。

bg [作业号]     #前台→后台

fg  [作业号]     #后台→前台

将一个作业放到后台运行的一种方法是在命令后面加“&”字符,ex:$ yes >/dev/null &

终止进程——kill

kill -s 信号| -p 进程号

kill -l [信号]

kill 进程号

kill -9 用于强制终止

当使用作业号来标识作业时,在作业号前面要加“%”。若该作业的作业号为1,可用下面的命令
$ ki11 %1

kill用于终止指定PID号的进程

killall用于终止指定名称的所有进程

计划任务管理——at

 在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

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

设置格式:at  [HH:MM]  [yyyy-mm-dd]

[root@localhost ~]# service atd start

启动 atd:                                               [确定]

[root@localhost ~]# at 23:45

at> shutdown -h now

at> <EOT>

job 1 at 2009-09-14 23:45    # 按Ctrl+D键提交任务

[root@localhost ~]# atq 1      

2009-09-14 23:45 a root

计划任务管理——crontab

按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务

管理cron计划任务

编辑计划任务:crontab  -e  [-u  用户名]

查看计划任务:crontab  -l   [-u  用户名]

删除计划任务:crontab  -r   [-u  用户名]

ex:

[root@localhost root]# crontab -l -u jerry

55 23 * * 7  /bin/cp /etc/passwd /home/jerry/pwd.txt

[root@localhost root]# crontab -r -u jerry

[root@localhost root]# crontab -l -u jerry

no crontab for jerry

crontab任务的配置格式

时间数值的特殊表示方法

  • *    表示该范围内的任意时间
  • ,    表示间隔的多个不连续时间点
  • -    表示一个连续的时间范围
  • /    指定间隔的时间频率

应用示例

0  17  *  *  1-5        周一到周五每天17:00

30  8  *  *  1,3,5    每周一、三、五的8点30分

0  8-18/2  *  *  *    8点到18点之间每隔2小时

0  *  */3  *  *        每隔3天 

添加crontab调度

vi crontab -e

00 17 * * 5 tar -czf  /home/hellon/data /backup/hellen-data.tar.gz

示例1(root用户):

每天早上7:50自动开启sshd服务,22点50时关闭

50 7 * * * systemctl start sshd

50 22 * * * systemctl stop sshd

每隔5天清空一次FTP服务器公共目录/var/ftp/pub

* * */5 * * rm -rf /var/ftp/pub/*

每周六的7:30时,重新启动httpd服务

30 7 * * 6 restart httpd

每周一、三、五的17:30时,打包备份/etc/httpd目录

30 17 * * 1,3,5 tar -zcvf /backup/httpd_backup_$(date +\%Y\%m\%d).tar.gz /etc/httpd

示例2(jerry用户):

每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件 

55 23 * * 7 cp /etc/passwd /home/jerry/pwd.txt

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【linux】基础IO(一)

文件只有站在系统层面才能彻底理解 简单回顾一下文件&#xff1a; 首先我们要明确一点&#xff0c;我们说的打开文件不是写下fopen就打开文件&#xff0c;而是当我们的进程运行起来&#xff0c;进程打开的文件。 我们在C语言一般都会使用过如下的代码进行向文件中写入 但是除…

Oracle客户端如何连接远程数据库?

Oracle是一种常用的数据库管理系统&#xff0c;它具有高效、稳定的特性&#xff0c;广泛应用于各行各业。为了实现远程数据库的连接&#xff0c;我们可以使用Oracle客户端工具。本文将介绍如何使用Oracle客户端连接远程数据库&#xff0c;并讨论其使用场景。 Oracle客户端工具 …

sql中如何添加数据?

添加 在 SQL 中添加数据通常使用INSERT语句。INSERT语句用于将新的数据行插入到数据库表中。 基本的INSERT语句语法如下&#xff1a; INSERT INTO table_name (column1, column2,...) VALUES (value1, value2,...);其中&#xff1a; INSERT INTO&#xff1a;指定要插入数据…

利用Flutter的特性最大程度提升iOS应用的用户体验

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

SSM框架学习——MVC模式与三层架构

MVC模式与三层架构 什么是MVC模式 MVC模式代表Model-View-Controller&#xff08;模型-视图-控制器&#xff09;模式。这种应用模式用于应用程序的分层开发。 Model代表存取数据的对象&#xff0c;它自身可带有逻辑&#xff0c;数据变化时更新Controller。View代表Model包含…

最牛的音乐大模型-suno 音乐界的ChatGPT

一、前言 之前一直对音乐是无感的&#xff0c;但随着 suno.ai 大火&#xff0c;开始喜欢上了音乐&#xff0c;喜欢上了音乐创作的 二、suno介绍 2.1 基本介绍 基于 Suno 任何人都可以创作美妙音乐。无论您是歌手还是艺术家抑或是对音乐一无所知的人&#xff0c;suno都会打破…

STM32(1):系统架构地址映射

STM32&#xff08;1&#xff09;&#xff1a;系统架构&地址映射 前提摘要 个人说明&#xff1a; 限于时间紧迫以及作者水平有限&#xff0c;本文错误、疏漏之处恐不在少数&#xff0c;恳请读者批评指正。意见请留言或者发送邮件至&#xff1a;“Email:noahpanzzzgmail.com…

基因组Survey分析

流程图&#xff1a; 图片来源&#xff1a;https://www.jianshu.com/p/94da86093843 一、Fastp质控 二、NT比对 一般选择第六个输出格式 结果示例&#xff1a; 三、k-mer分析 软件&#xff1a;GCE/genomescope 分析目的&#xff1a;预估基因组大小&#xff0c;重复序列比…

团聚金刚石研磨液为高性能研磨抛光材料 中机新材是国内领先供应商

团聚金刚石研磨液为高性能研磨抛光材料 中机新材是国内领先供应商 团聚金刚石研磨液是一种高性能研磨抛光材料&#xff0c;是以团聚金刚石微粉为原料采用特殊配方配制而成。团聚金刚石微粉是由金刚石微粉、粘结剂经特殊工艺处理集合而成的球形磨料。金刚石微粉制备方式多样&am…

4年经验来面试20K的测试岗,一问三不知,我还真不如去招应届生。

公司前段缺人&#xff0c;也面了不少测试&#xff0c;结果竟然没有一个合适的。一开始瞄准的就是中级的水准&#xff0c;也没指望来大牛&#xff0c;提供的薪资在10-20k&#xff0c;面试的人很多&#xff0c;但平均水平很让人失望。看简历很多都是4年工作经验&#xff0c;但面试…

使用Java流API构建树形结构数据

简介&#xff1a; 在实际开发中&#xff0c;构建树状层次结构是常见需求&#xff0c;如组织架构、目录结构或菜单系统。本教案通过解析给定的Java代码&#xff0c;展示如何使用Java 8 Stream API将扁平化的菜单数据转换为具有层级关系的树形结构。 1. 核心类定义 - Menu Data…

中科驭数超低时延网络解决方案入选2023年度金融信创优秀解决方案

近日&#xff0c;由中国人民银行领导、中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布「2023年度第三期金融信创优秀解决方案」&#xff0c;中科驭数超低时延网络解决方案从众多方案中脱颖而出&#xff0c;成功入选&#xff0c;代表了该方案的技术创新和金融实践…

Servlet基础 管理员注册页面

管理员注册页面 index.jsp <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <% String path request.getContextPath(); String basePath request.getScheme()"://"request.getServerName()":&quo…

Linux下javaweb项目部署

javaweb项目部署测试 测试环境&#xff1a;centos7 下载安装jdk rpm -ivh jdk-8u131-linux-x64.rpm 下载安装MySQL wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-server-5.7.33-1.el7.x86_64.rpm https://downloads.mysql.com/archives/get/p…

Android12 简单的共享内存驱动实现 参考Ashmem

Android12 共享内存驱动实现 SOC&#xff1a;RK3568 system&#xff1a;Android12 概述&#xff1a; 1. 概述 Ashmem&#xff08;Anonymous Shared Memory&#xff0c;Android 匿名共享内存&#xff09;&#xff0c;它基于 mmap 系统调用&#xff0c;可以让不同进程将同一段…

DHCP服务

DHCP简介 DHCP&#xff08;DynamicHost ConfigurationProtocol&#xff0c;动态主机配置协议&#xff09;通常被应用在大型的局域网络环境中&#xff0c;主要作用是集中的管理、分配IP地址&#xff0c;使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息&…

Flutter应用在App Store上架的完整指南

本文探讨了使用Flutter开发的iOS应用能否上架&#xff0c;以及上架的具体流程。苹果提供了App Store作为正式上架渠道&#xff0c;同时也有TestFlight供开发者进行内测。合规并通过审核后&#xff0c;Flutter应用可以顺利上架。但上架过程可能存在一些挑战&#xff0c;因此可能…

Git版本管理使用手册 - 8 -拉取开发分支、提交代码、查看提交日志

开发者从仓库获取开分支&#xff08;检出分支以及分支切换&#xff09; 根据仓库地址克隆的本地仓库&#xff0c;目录中默认是master的代码&#xff0c;即工作区是master代码&#xff0c;需要某一开发分支时&#xff0c;需要在工作区切换或者idea中先更新再切换分支&#xff0…

【java】关于String、StringBuffer和StringBuilder的那些事

在之前的文章中我们曾简单介绍过String这个引用类型变量&#xff0c;其实它还有许多特性&#xff0c;还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位&#xff0c;接下来就由小编带大家梳理一下吧&#x1f44a; 目录 一、String 1、构造方法 2、…

RIP协议(路由信息协议)

一、RIP协议概述 RIP协议&#xff08;Routing Information Protocol&#xff0c;路由信息协议&#xff09;是一种基于距离矢量的内部网关协议&#xff0c;即根据跳数来度量路由开销&#xff0c;进行路由选择。 相比于其它路由协议&#xff08;如OSPF、ISIS等&#xff09;&#…