三分钟理解三种基本进程状态

【操作系统】进程及进程的基本状态及转换图 文章目录 前言 一、进程的定义及特征? 1.进程的定义 2.进程的特征 3.进程和程序的区别 二、进程的基本状态及转换 1.进程的三种基本状态 2.三种基本状态的转换 3.五种基本状态及转换 4.挂起操作、激活操作和进程状态的转换 2.读入数据 前言 作为资源分配和独立运行的基本单位都是进程。操作系统所具有的四大特征也是基于进程而形成的。 一、进程的定义及特征? 1.进程的定义 (1)进程是程序的一次执行。 (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活.. 阅读详情

进程的三种基本状态

进程在生命周期内可能有多种状态,不过一般而言,每一个进程都至少有三种基本状态

就绪(Ready)状态
进程已处于准备运行的状态,获得除CPU以外所有必要的资源。如果获得CPU,则立即执行
执行(Running)状态
进程获得CPU,正在执行的状态
阻塞(Block)状态
正在执行的进程,由于等待某个事件(如I/O申请,申请缓冲区失败,访问临界资源等)的发生而暂时无法继续执行时的状态

三种状态的转换

进程的三种状态及转换

进程在运行期会经常发生这三个状态间转换

就绪→执行
处于就绪状态的进程,在进程调度程序为之分配下获得CPU,进程由就绪状态转变成执行状态。

执行→就绪
处于执行状态的进程在其执行过程中,分配给进程的时间片已用完而让出CPU,进程从执行状态变成就绪状态。

执行→阻塞
处于执行状态的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。阻塞是进程的主动行为
某些事件一般指:

  • 向系统请求资源(内存,临界资源等)失败(eg.向系统申请更多的内存时,系统中的内存不能达到进程的需求,进程将会进入阻塞状态)
  • 等待某事件的完成(eg.进程申请I/O设备,I/O设备启动后进程便自动进入阻塞状态去等待,等I/O操作完成后,进程将会被唤醒)
  • 新数据尚未到达(eg.有俩个进程,进程A用于数据的输入,进程B进行数据的加工,在进程A数据输入完成之前,进程B都是处于阻塞状态)
  • 等待新任务的到达(eg.例如网络环境中的发送进程,主要任务是发送数据包。若已有的数据包已发送完毕,则自动进入阻塞状态;仅当有新的数据包到达时,进程才会唤醒)
    由此也可见进程阻塞是主动行为

阻塞→就绪
处于阻塞状态的进程,若其等待的事件已经发生,进程由阻塞状态变为就绪状态。

零代码构建AI智能体:COZE可视化工作流实战指南 AI智能体(AI Agent)是当前人工智能领域的重要发展方向,它通过模块化设计和工作流驱动,使大语言模型从被动对话转向主动执行。其核心原理在于将复杂的任务分解为可规划、可执行的步骤,并调用外部工具(插件)完成闭环。这一技术价值在于显著降低了自动化流程的开发门槛,让非程序员也能构建实用的数字助手。典型的应用场景包括智能客服、内容自动生成、数据分析和跨系统业务流程自动化。本文以COZE平台为例,深入解析如何通过其直观的可视化界面和丰富的插件生态,像搭积木一样快速搭建如“早安简报生成器”等实用智能体,并分享指令 阅读详情

相关推荐

别再只会用Excel了!Minitab 21手把手教你搞定SPC控制图(从数据导入到结果解读)

本文详细介绍了如何使用Minitab 21高效制作SPC控制图,从数据导入到结果解读的全流程。通过对比Excel的局限性,展示Minitab在自动化计算、图表标准化和特殊原因检验等方面的优势,帮助质量管理人员提升工作效率和数据分析专业性。

weixin_30878501的博客 383

【002 操作系统】进程的状态及状态转换图?

NULL -> 创建状态:一个新进程被创建时的第一个状态;创建状态 -> 就绪状态:当进程被创建完成并初始化后,一切就绪准备运行时,变为就绪状态,这个过程是很快的;就绪态 -> 运行状态:处于就绪状态的进程被操作系统的进程调度器选中后,就分配给 CPU 正式运行该进程;运行状态 -> 结束状态:当进程已经运行完成或出错时,会被操作系统作结束状态处理;运行状态 -> 就绪状态。

kashine的博客 8093

get_seed协议

【代码】get_seed协议。

a545958498的博客 911

进程的三种基本状态

进程的三种基本状态   进程在运行中不断地改变其运行状态。通常,一个运行进程必须具有以下三种基本状态。   就绪(Ready)状态   当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。   执行(Running)状态   当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。   

Allen Roson 4万+

VL53L0X测距不准?手把手教你做RefSPAD校准与环境补偿(附Arduino/STM32代码)

本文详细解析了VL53L0X激光测距传感器精度不足的原因,并提供了RefSPAD校准与环境补偿的完整解决方案。通过Arduino和STM32代码示例,手把手教你实现毫米级测距稳定性,适用于机器人避障、工业检测等场景。

weixin_28744423的博客 256

FAST-LIVO2 源码精读(十八):实时性优化、漂移排查与工程落地

FAST-LIVO2 的工程价值,不在于某一个孤立的技巧,而在于它把"激光的几何精度、惯性的高频预测、视觉的纹理与色彩"用一套简洁的滤波框架紧紧拧在一起,又在实时性、鲁棒性、可扩展性之间取得了难得的平衡。先用内建计时表定位瓶颈,再按降采样、并行、滑窗、编译优化、双频输出逐项加速;遇到漂移先看现象、循诊断树定位根因、回到对应章节取解法。十八篇至此收束。

PX4-SLAM-PNC 216

进程管理

*☆☆☆☆☆* 1.在进程管理中,当 等待的事件发生 时进程从阻塞状态变为就绪状态. 2.分配到必要的资源并获得处理机时的进程状态是 执行状态 。 3.P、V操作是 两条低级进程通信原语 。 4.对进程的管理和控制使用 原语 。 5.进程的并发执行是指若干个进程 在执行的时间上是重叠的 。 6.若P、V操作的信号量S初值为2,当前值为-1,则表示

Ant for life. 4845

一文搞定离线环境下的RAG引擎部署

在人工智能浪潮下,技术已成为构建智能问答、文档分析和代码助手等应用的核心。然而,在许多企业场景中,出于数据安全和性能的考虑,服务器往往部署在中,并要求极致的推理效率。这给依赖外部资源的应用部署带来了巨大挑战。如何在这种严苛的环境下,完整、可靠地部署一套包含向量数据库、**高性能推理服务(vLLM)**和Python后台的复杂RAG系统呢?本文将为你提供一个,手把手教你如何使用 Docker 技术,将一套基于 Weaviate 和的 Python RAG 应用完整打包,并在离线环境中一键部署。

木鱼时刻的专栏 1241

操作系统王道考研复习——第二章(进程管理) 上

操作系统——第二章2 进程管理2.1 进程与线程2.1.1 进程的概念和特征2.1.2 进程的状态与转换2.1.3 进程控制2.1.4 进程的组织2.1.5 进程的通信2.1.6 线程概念和多线程模型2.2 处理机调度2.2.1 调度的概念2.2.2 调度的时机、切换与过程2.2.3 进程调度方式2.2.4 调度的基本准则2.2.5 典型的调度算法2.3 进程同步2.3.1 进程同步的基本概念2.3.2 实现临界区互斥的基本方法2.3.3 信号量2.3.4 管程2.3.5 经典同步问题2.4 死锁2.4.1

壹的博客 1万+

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

SAP-ABAP: BP主数据完全指南:从基础到高阶应用

baidu_35680696的博客 1647

嵌入式面经篇八——进程&线程

记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第八篇。进程上文:是指进程由用户态切换到内核态时需要保存用户态时CPU寄存器中的值,进程状态以及堆栈上的内容。即保存当前进程的状态,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文:是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

明天你好的博客 1854

Java进程调度的基本过程(详细易理解)

了解这个问题之前,我们需要先打开我们桌面上的的学习资料啪的一下,很快啊,点双击学习资料.exe之后,在后台(ctrl+alt+delete,任务管理器)我们就能看到这个东西我们这里肉眼直观可见的这个XX游戏登录程序,就是我们所谓的进程桌面上的exe文件,只是起了一个发起调用的作用如果我们不点击exe文件,那么这个进程就永远不会被触发换句话来说不调用,不触发很好的一句废话。

qq_62718027的博客 557

【实验必备】对AffectNet数据集进行人脸对齐的小Demo

本文首先简单介绍了AffectNet数据集,及人脸关键点等背景知识,接着Po出了人脸对齐的代码及效果展示。注:本文代码参考自FG2021的Emotion-GCN的开源代码,具有一定的可靠性,欢迎大家学习!

信小海 2667

LINUX C———第七章 进程

我的博客从来都不水——进程?

小红九さんの技術ブログ 679

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

进程追踪神器witr:三分钟解决“为什么这个在运行“的终极疑问

你是否经常在服务器上看到陌生的进程却不知道它为何存在?🤔 或者想知道某个服务是如何启动的,但面对复杂的进程链感到困惑?今天我要向你介绍一个能快速解答这些问题的强大工具——**witr**(Why is this running?)。这个跨平台的进程追踪工具专门回答一个核心问题:"为什么这个进程在运行?" 通过直观的祖先链追踪,witr能揭示进程的启动来源、依赖关系和系统上下文。 ## 🔍 什

gitblog_00523的博客 952

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

鹅厂进击OS系列(二):进程三连

鹅厂进击OS系列(二):进程三连 今天风和日丽,家里蹲的我十点钟听了三分钟的鸣笛,心里好感慨,希望山河世代无恙。 下午追完了剧,暂时剧荒了,跟gg说在家学习,对待接下来的面试,他说不如替他写毕设哈哈哈,今天也是想吃海底捞的一天。 下午睡醒了,终于把早上这篇托更的博客完善好了,可能理解有不对的地方,望指正。 文章目录鹅厂进击OS系列(二):进程三连一、初识进程1.进程是什么2.进程控制块PCB3...

NayelyA的博客 241

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Sharp-dumpkey:三分钟搞定微信数据库解密密钥提取

还在为无法查看微信聊天记录而烦恼吗?想要备份重要对话却卡在数据库解密这一步?别担心,今天我要分享的这个神奇工具,能让你在短短几分钟内轻松获取微信数据库解密密钥,彻底告别数据访问障碍! ## 🔍 为什么你的微信聊天记录无法直接查看? 微信为了保护用户隐私,对本地存储的聊天数据库进行了AES加密处理。这就像给你的聊天记录上了把安全锁,而Sharp-dumpkey就是那把精准的"钥匙"。 ###

gitblog_00947的博客 644

计算机实验进程管理与虚拟机,虚拟机VMware进程控制实验.docx

虚拟机VMware进程控制实验实验6:进程控制操作1、实验目的1、了解进程的概念;2、熟悉Linux的前台与后台进程控制操作;3、掌握利用进程监控工具来维护系统的正常运行;2、实验内容1、Linux的前台与后台进程控制操作;2、系统监视器(system monitor)的使用和系统维护;3、实验操作在Linux的GUI模式下,点击:“主菜单/系统工具/终端”(system/terminal),进入...

weixin_32685145的博客 1203

linux c语言文件拷贝_三分钟基础:Linux 进程、线程、文件描述符的底层原理

来源:labuladong作者:labuladong说到进程,恐怕面试中最常见的问题就是线程和进程的关系了,那么先说一下答案:在 Linux 系统中,进程和线程几乎没有区别。Linux 中的进程其实就是一个数据结构,顺带可以理解文件描述符、重定向、管道命令的底层工作原理,最后我们从操作系统的角度看看为什么说线程和进程基本没有区别。一、进程是什么首先,抽象地来说,我们的计算机就是这个东西:...

weixin_39750190的博客 135

多线程三分钟就可以入个门了!

之前花了一个星期回顾了Java集合:在写文章之前通读了一遍《Java 核心技术 卷一》的并发章节和《Java并发编程实战》前面的部分,回顾了一下以前写过的笔记。从今天开始进入多线程的知识点咯~之前在学习Java基础的时候学多线程基础还是挺认真的,可是在后面一直没有回顾它,久而久之就把它给忘掉得差不多了..在学习JavaWeb上也一直没用到多线程的地方(我做的东西太水了...)。由于面试这一部分是占很大比重的,并且学习多线程对我以后的提升也是很有帮助的(自以为)。我其实也是相当于从零开始学多线程的,如果文章有

zhaohuodian的博客 99

多线程三分钟就可以入门了

讲到线程,又不得不提进程了~进程我们估计是很了解的了,在windows下打开任务管理器,可以发现我们在操作系统上运行的程序都是进程:进程是程序的一次执行,进程是一个程序及其数据在处理机上顺序执行时所发生的活动,进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位进程是系统进行资源分配和调度的独立单位。每一个进程都有它自己的内存空间和系统资源这篇主要是讲解了线程是什么,理解线程的基础对我们往后的学习是有帮助的。这里主要是简单的入了个门。

sunjie12311的博客 92

如何三分钟实现GitHub Desktop全中文界面:零门槛汉化指南

还在为GitHub Desktop的英文界面而困扰吗?每次使用Git命令都要在英文菜单中摸索,工作效率大打折扣。今天,我将为您介绍一款专为中文用户打造的GitHub Desktop汉化工具——GitHubDesktop2Chinese,它能让您在短短三分钟内将整个界面转换为熟悉的中文环境。 ## 为什么需要GitHub Desktop中文界面? 对于大多数中文开发者来说,使用英文版GitHub

gitblog_00396的博客 462

java三分钟面试题_Java常考面试题(三)

序言说说今天遇到的一件小事吧,在遇到问题,查找答案时,看到很多人的博客里面都有提到关键字眼,可让人觉得可恨的是,大多数人写的博文中,基本上都是照着书上的语言发表的,看了跟没看一样,没有一点通俗的语言和自己关于该知识点的讲解,也有可能是觉得太简单,不用做解释,但是个人感觉,写博文,在一些自己都需要思考一段时间去理解的东西,应该把自己思考的过程,如何理解的写下来,而不是就把精华的部分复制黏贴上去,个人...

weixin_39550940的博客 123

Oracle后台进程SMON功能

你所不知道的Oracle后台进程SMON功能 原帖地址:点击打开链接 SMON(system monitor process)系统监控后台进程,有时候也被叫做system cleanup process,这么叫的原因是它负责完成很多清理(cleanup)任务。但凡学习过Oracle基础知识的技术人员都会或多或少对该background process的功能有所了解。 我们所...

oradbm的博客 5223

【操作系统】Linux进程管理脚本

脚本最开始是我什么时候想起来就执行一次的,检测一下哪些进程没开或者崩溃了,哪些进程的情况是怎样怎样的。后来我发现,这样也不是个事儿啊,机器能做的事情,干嘛非要自己做,就用Linux的定时器,定时的去执行这个脚本。因为项目需要,可能需要维护比较多的进程,每个进程的有无,都回影响整个项目。依照这种方式,可以检测进程的情况,如果崩溃或者没开,或者怎样怎样都可以自行做处理。这里的意思是,每三分钟这个定时器执行一遍这个Manager.sh脚本,然后把日志以重写的方式输出到Manager.log这个文件中。

沙师弟专栏 1058
上一篇: 深入理解进程实体,进程及程序与进程之间联系与区别
下一篇: 进程七态及挂起和阻塞的区别
Flyy.
博客等级 码龄7年 6粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flyy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值