Linux下的进程和作业概念,以及作业管理

本文深入探讨了Linux操作系统中的进程与作业概念,详细解释了交互进程、批处理进程和监控进程的特点,并阐述了作业控制的方法,如挂起、切换作业及后台执行命令。通过实例演示了如何在bash环境下灵活运用后台执行、暂停作业和管理后台作业的技术,旨在提升用户在Linux环境下的高效操作能力。

进程的一个比较正式的定义是:在自身的虚拟地址空间运行的一个单独的程序。

Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。
交互进程——由一个shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。
批处理进程——这种进程和终端没有联系,是一个进程序列。
监控进程(也称守护进程)——Linux系统启动时启动的进程,并在后台运行。


进程和作业的概念也有区别。一个正在执行的进程称为一个作业,而且作业可以包含一个或多个进程,尤其是当使用了管道和重定向命令。例如“nroff -man ps.1|grep kill|more”这个作业就同时启动了三个进程。

作业控制指的是控制正在运行的进程的行为。比如,用户可以挂起一个进程,等一会儿再继续执行该进程。shell将记录所有启动的进程情况,在每个进程过程中,用户可以任意地挂起进程或重新启动进程。作业控制是许多shell(包括bash和tcsh)的一个特性,使用户能在多个独立作业间进行切换。

一般而言,进程与作业控制相关联时,才被称为作业。


在大多数情况下,用户在同一时间只运行一个作业,即它们最后向shell键入的命令。但是使用作业控制,用户可以同时运行多个作业,并在需要时在这些作业间进行切换。这会有什么用途呢?例如,当用户编辑一个文本文件,并需要中止编辑做其他事情时,利用作业控制,用户可以让编辑器暂时挂起,返回shell提示符开始做其他的事情。其他事情做完以后,用户可以重新启动挂起的编辑器,返回到刚才中止的地方,就象用户从来没有离开编辑器一样。这只是一个例子,作业控制还有许多其他实际的用途。


直接将命令放到后台“执行”的&

 在bash的环境下,

 前台指:你可以控制的作业

后台指:在内存可以自行运行的作业,你无法直接控制它,除非以bg/fg等命令将该作业调用出来。

范例:

        [root@redflag ~]# tar –zpcf /tmp/etc.tar.gz /etc &

[1] 24874  <== [job number] PID

[root@redflag ~]#     <==可以继续工作,不受影响。

这里job1在后台继续工作,你可在前台继续操作linux。过了一会,会突然出现这个数据:

[1] + Done        tar –zpcf  /tmp/etc.tar.gz /etc  #这是表示[1]作业已经完成

该命令最大的好处就是不怕被“[Ctrl]+c”这个中断指令来中断了

这里就会出现一个问题,如果上面的命令是

[root@redflag ~]# tar –zpcvf /tmp/etc.tar.gz /etc &

 这时在后台执行的命令,如果有stdout和stderr时,它的数据是输出到屏幕上,所以我们无法看到提示符,也就无法完好地控制前台作业。所以,最好是使用数据流重导向,将输出数据传至某个文件中。我们可以这样做:
        [root@redflag ~]# tar –zpcvf  /tmp/etc.tar.gz  /etc > tpm/log.txt  2>&1  &
这样,数据都传送到/tmp/log.txt中,自然不会影响到前台作业。

  二、 将“当前”作业放到后台“暂停”:[crtl]+Z

如果你正在进行vi,但你想查找某个文件,需要到bash环境搜索。此时你可以暂时离开vi

    [root@redflag ~]# vi ~/.bashrc

 # 在vi 的一般模式下,按ctrl+z

[1]+  Stopped      /usr/bin/vim ~/.bashrc  #(+)表示当前在后台下默认的作业

[root@redflag ~]#   <== 获取了前台的控制权

三、 观察当前后台作业状态:jobs

  [root@redflag ~]# jobs [-lrs]

  参数:

   -l:除了列出作业号之外,同时列出PID

   -r:仅列出正在后台运行的作业

   -s:仅列出正在后台暂停的作业

  范例:

    [rot@redflag ~]# jobs –l

  [1]+ 24988 Stopped     /usr/bin/vim ~/.bashrc

  [2]- 25006 Stopped     /usr/bin/vim ~/.bash_history

   一般来说,直接执行jobs即可。在上面的输出中,有(+ -)号。(+)表示默认的作业。所以说“当前我有两个作业在后台,两个作业都是暂停的,如果我仅输入fg时,那么[1]会被拿到前台处理”

  四、 将后台作业拿到前台处理,fg

   [root@redflag ~]# fg %jobnumber

   范例:

      [root@redflag ~]# jobs

    [1]+ 24988 Stopped     /usr/bin/vim ~/.bashrc

    [2]- 25006 Stopped     /usr/bin/vim ~/.bash_history

   [root@redflag ~]# fg   <==默认取出+的作业,即[1]

   [root@redflag ~]# fg %2 <==直接规定取出的作业号码

  五、 作业在后台运行:bg

   之前都是将作业放到后台去“暂停”,而bg实现一个作业在后台运行。

     [root@redflag ~]# find / -perm +7000

    #此时,请立刻按ctrl+z暂停

    [1]+ stopped       find / -perm +7000

   [root@redflag ~]# 

   [root@redflag ~]# jobs ; bg %1 ; jobs

    [1]+ Stopped         find / -perm + 7000

    [1]+ find / -perm +7000 &

    [1]+ Running         find / -perm +7000 &

    此时Stopped变成了Running,命令行的最后多了一个&符号,表示该作业在后台启动了。

注意:1-5操作过程中“%jobnumber”可以将“%”省略直接加jobnumber即可。

六、 管理后台作业:kill

   [root@redflag ~]# kill –signal %jobnumber

   [root@redflag ~]# kill –l

    参数:

    -l:列出当前kill能够使用的信号(注意是小写L)

    -1:重新读取一次参数的设置文件(类似reload)   ---对应的信号为SIGHUP

     -2:表示与由键盘输入ctrl+c同样的动作         ---对应的信号为SIGINT

     -9:立刻强制删除一个作业                    ---对应的信号为SIGKILL

     -15:以正常方式终止一项作业                 ---对应的信号为SIGTERM 

      [root@redflag ~]# jobs

    [1]+ Stopped         vim bashrc

   [root@redflag ~]# kill -9 %1             #以强制方式删除

   [1]+ 已删除          vim bashrc     

   [root@redflag ~]# kill –SIGTERM %1      #-SIGTERM与15是一样的

   说明一下以正常方式与强制方式来终止作业的区别:例如,用vi编辑文件的时候会产生一个.filename.swp文件,如果以正常方式来结束作业,那么.filename.swp文件会主动被删除;相反以强制的方式来结束作业,那么.filename.swp文件会继续存在文件系统中。

   注意:kill可以帮我们将信号传送给某个作业(%jobnumber)或者是某个PID(直接输入数字),也就是说,kill后面直接加数字与加上%的情况是不同的。


内容概要:本文围绕“梯级水电+混合式抽水蓄能+源网荷储”多能协同系统开展深入研究,提出一种集成梯级水电站、混合式抽水蓄能电站及风、光等新能源的源网荷储一体化协同优化运行模型,并基于Matlab平台完成仿真代码实现。研究重点在于构建多间尺度下考虑电力平衡、水量约束、机组运行特性及可再生能源波动性的联合调度机制,通过优化能量流分配提升系统灵活性、运行经济性与可再生能源消纳能力。模型充分考虑梯级水电站间的水力耦合关系与抽水蓄能的双向调节能力,实现对复杂多能源系统的协调控制与综合性能提升。; 适合人群:具备电力系统分析、优化调度及可再生能源并网等相关基础知识,熟练掌握Matlab编程语言,从事水电能源系统、综合能源系统、储能配置与调度优化等领域研究的科研人员与工程技术人员,特别适合高校研究生及以上层次的研究者。; 使用场景及目标:①应用于梯级水电与混合式抽水蓄能电站的联合调度策略设计;②支撑高比例新能源接入背景下电力系统调峰调频与灵活性提升研究;③为源网荷储一体化系统的建模、仿真与优化决策提供可复现的代码框架与技术参考,助力科研成果转化与实际工程应用。; 阅读建议:建议结合文中提供的Matlab代码进行逐模块调试与仿真分析,重点关注目标函数构建、约束条件设置及求解算法实现细节,同可拓展至不同流域梯级电站与多种储能形式的集成场景,深化对多能协同机理的理解与应用能力。
内容概要:本文系统研究了基于事件触发分布式策略的孤岛微电网二次频率与电压恢复控制方法,旨在通过引入事件触发机制优化通信效率,降低传统周期性通信带来的高开销,同保障控制性能。研究在Simulink仿真平台上构建了包含多台分布式电源的孤岛微电网模型,实现了频率与电压的协同恢复控制,验证了所提策略在抑制频率电压偏差、提升系统稳定性方面的有效性。文章深入探讨了事件触发条件的设计原理、控制器参数整定方法及系统在外部扰动DoS攻击等复杂环境下的鲁棒性,展现了该策略在提升微电网弹性控制与通信优化方面的潜力。研究成果为分布式控制在智能电网中的应用提供了理论支持与仿真验证范例。; 适合人群:具备电力系统、自动控制或新能源相关背景,从事微电网、分布式控制、智能电网等方向研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①用于孤岛微电网中实现高效、低通信成本的频率与电压协同控制;②为研究事件触发机制在分布式控制中的应用提供仿真案例与技术参考;③支持对二次控制策略、弹性控制、通信优化等课题的深入探索与算法验证。; 阅读建议:建议结合Simulink仿真模型同步学习,重点关注事件触发条件的设计、控制器参数整定及仿真结果分析,宜在掌握基本微电网控制理论基础上进行深入研读与复现实验。
内容概要:本文围绕并网与离网模式下的风光互补制氢合成氨系统,开展容量配置与运行调度的联合优化分析,提出基于Python代码实现的双层优化模型。该模型充分考虑风能与太阳能出力的不确定性,结合电解水制氢及合成氨工艺的能量转换特性,构建涵盖设备选型、容量规划与多段运行调度的协同优化框架,旨在实现系统在经济性、能源自给率与运行可靠性之间的综合平衡。通过典型场景的仿真分析,验证了模型在不同运行模式下的有效性,深入探讨了系统在离网与并网条件下的最优配置方案、调度策略差异及关键设备的运行特性,为可再生能源深度耦合化工生产过程的综合能源系统规划设计提供了重要的理论依据技术支撑。; 适合人群:具备一定能源系统建模、优化算法及可再生能源技术基础,从事新能源、综合能源系统、氢能与绿色化工等领域的科研人员及工程技术人员,特别适用于研究生及以上学历的研究者。; 使用场景及目标:①研究风光等可再生能源在离网或并网条件下驱动制氢、合成氨系统的最优容量配置与运行调度策略;②掌握基于数学规划(如混合整数线性规划)的能源系统多目标优化建模方法,实现投资成本、运行成本与碳排放的综合优化;③为实际电-氢-氨耦合示范项目的系统设计、经济性评估与运行决策提供仿真工具与量化分析支持。; 阅读建议:建议结合提供的Python代码进行实践操作,重点关注模型的目标函数构建、约束条件(如能量平衡、设备运行特性、电解槽动态响应等)的数学表达与求解器调用流程,宜配合相关专业文献深入理解合成氨反应热力学、电解槽效率模型等关键技术细节,并尝试对不同边界条件(如电价、氢气价格、风光资源禀赋)进行敏感性分析,以深化对系统优化机理的理解。
内容概要:本文针对多个固定翼无人机在复杂环境下的协同飞行需求,提出了一种基于分布式模型预测控制(DMPC)的一致性控制方法。通过结合固定翼无人机的动力学特性与多智能体系统的通信拓扑结构,构建了分布式的优化控制框架,实现了无人机群的状态一致性控制与编队稳定性维持。研究详细阐述了DMPC算法的设计过程,包括局部代价函数的构造、系统约束的处理、邻居信息交互机制以及滚动优化求解策略,并利用Matlab平台进行了仿真验证,结果表明该方法在轨迹跟踪、编队保持抗干扰能力方面具有良好的性能与鲁棒性。; 适合人群:具备自动控制理论、无人机系统建模或优化算法基础,从事多智能体协同控制、航空航天工程、机器人编队控制等相关领域的研究人员与研究生。; 使用场景及目标:① 实现多固定翼无人机在无中心节点条件下的高效协同编队飞行;② 解决复杂动态环境中无人机群的一致性控制与实调整问题;③ 为分布式控制策略在实际无人机集群系统中的工程化应用提供算法支持与仿真验证手段; 阅读建议:建议结合提供的Matlab代码深入理解DMPC的求解流程与通信拓扑设计,重点关注预测域、权重参数设置及信息交换频率对控制性能的影响,可进一步拓展至非理想通信(如延、丢包)场景下的算法鲁棒性研究。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值