Linux系统-前台任务组,后台任务组

2024-06-03 04:36

本文主要是介绍Linux系统-前台任务组,后台任务组,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前台进程
  • 后台进程
  • 新命令
    • jobs
    • fg 【后台进程组序号】
    • ctrl+z组合键信号 和 bg命令
      • ctrl+z组合键信号
      • bg 【后台进程组序号】
  • session会话
        • 此时我们关闭本次的会话,我们的后台进程是否也会退出呢?
  • 总结


前台进程

在我们远程登录Linux服务器后,执行ls或者自己的可执行程序时,其实都是在前台运行的,前台运行的程序具备什么特点呢?

我们执行一个每隔一秒打印一次hello world的程序
在这里插入图片描述

当我们用键盘输入pwd,并没有为我们执行pwd命令,这是因为我们的键盘所发送的信息给了这个正在每隔一秒打印一次hello world的前台进程。

后台进程

要想将一个进程设为后台运行,很简单 只需要

./a.out &
在这里插入图片描述

这样我们所执行的文件就在后台运行了,此时我们的程序仍然在不断像显示器打印hello world,而如果你现在使用ctrl+c会发现是无法终止该后台进程的!且我们现在键盘输入ls,pwd命令可以正常执行。

现象可以总结出:

  1. 后台进程仍然可以向显示器打印消息。
  2. 键盘输入只能给前台进程,所以ctrl+c无法终止后台进程

那么我们是不是可以得出另一个结论,谁占有键盘谁就是前台进程,所以 前台进程只有一个

新命令

jobs

先来创建两个后台文件
在这里插入图片描述
当我们创建一个后台进程时,会在屏幕显示这样的信息
在这里插入图片描述
这里告诉大家,【1】的 1 是 该session会话中的后台进程组序号,至于为什么里我称为进程组等会再说。
而后面的5493则为该进程组ID。
在这里插入图片描述
可以发现我们的第一个sleep进程的进程ID 就是 它的进程组ID,说明这个第一个sleep进程是组长,且进程组ID是根据组长的进程ID保持一致。

fg 【后台进程组序号】

该命令可以根据后台进程组序号,将该进程组的全部进程移动到前台。
在这里插入图片描述
移动到前台后就可以使用ctrl+c终止该进程。当然想要终止后台进程也可以使用kill命令。

当我们使用fg命令将进程组移动到前台时,bash作为一个进程组,它也需要被移动到后台当中。

ctrl+z组合键信号 和 bg命令

ctrl+z组合键信号

在这里插入图片描述

当我们按下ctrl+z会向前台进程组发送19号SIGSTOP信号。 此时该暂停的前台进程组会被移动到后台,后台的bash移动到前台。


bg 【后台进程组序号】

如果我们要唤醒被暂停的后台进程组,则可以使用bg 【后台进程组序号】来唤醒它在后台继续运行。
在这里插入图片描述


session会话

当我们使用xshell远程登录远端的Linux云服务器时,其实就是向Linux系统申请一次会话,于是我们就有了一个会话窗口,并给我们分配一个bash。

在这里插入图片描述
这里我们就能很直观的看见,我们在该会话中所运行的进程的sessionID都是一样的,而这个sessionID正是我们的bash的PID。

此时我们关闭本次的会话,我们的后台进程是否也会退出呢?

在这里插入图片描述
在这里插入图片描述
出乎意料的是 虽然我们的会话关闭了,但是该会话的后台进程并没有被退出。
在这里插入图片描述

总结

通过上述的知识内容,我们是否可以创建一个不会受任何终端影响的进程,只要我们的云服务器不关机,这个进程就不会被终止!

这就是下一节课进程守护的内容,我们基于上节课的翻译字典服务再添加上上进程守护的功能。

这篇关于Linux系统-前台任务组,后台任务组的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1026024

相关文章

Linux命令之firewalld的用法

《Linux命令之firewalld的用法》:本文主要介绍Linux命令之firewalld的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux命令之firewalld1、程序包2、启动firewalld3、配置文件4、firewalld规则定义的九大

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Linux ls命令操作详解

《Linuxls命令操作详解》通过ls命令,我们可以查看指定目录下的文件和子目录,并结合不同的选项获取详细的文件信息,如权限、大小、修改时间等,:本文主要介绍Linuxls命令详解,需要的朋友可... 目录1. 命令简介2. 命令的基本语法和用法2.1 语法格式2.2 使用示例2.2.1 列出当前目录下的文

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3