Linux 在后台执行 shell 指令的方法

Shell 指令后台运行是指在Linux或Unix操作系统中执行一个Shell命令或脚本时,使其在后台模式下运行,即在不占用当前终端会话的交互性、不影响用户在该终端进行其他操作的情况下持续执行。这种执行方式允许用户在提交命令后立即返回到命令提示符,继续执行其他任务或关闭终端,而不会影响已放入后台的命令或脚本的执行状态。以下是后台运行Shell指令的主要特点和方法:

  • 特点:与终端交互分离

    • 在后台运行的Shell指令不会打印其输出到当前终端,除非特意重定向。这使得用户可以在同一终端窗口中执行其他命令,而不被后台任务的输出干扰。
    • 用户对终端的操作(如关闭、断开连接等)通常不会影响后台任务的运行。这意味着即使用户退出了登录会话,后台任务仍可能继续执行(除非受到系统的其他限制,如会话超时等)。
  • 方法:使用& 符号

    直接在命令末尾添加&
command &//这是最简单的方法,将`command`提交到后台执行。
//系统会分配一个作业编号,并显示类似 `[1] 14318` 的信息,其中`[1]`是作业编号,`14318`是进程ID(PID)。
//的输出(标准输出和标准错误)默认会被重定向到一个名为`nohup.out`的文件,或者如果没有指定重定向,则可能发送到用户的邮件(如果系统配置支持)。
  • 对于脚本文件
sh script.sh &//类似地,要让一个Shell脚本在后台运行,只需在脚本文件名后面加上`&`符号即可。
//脚本会在后台启动一个新的子Shell来执行其内容。

作业控制

  • 查看后台作业: 使用 jobs 命令可以列出当前会话中所有后台作业的状态。

  • 切换到前台: 使用 fg 命令可以将后台作业切换到前台继续执行。如果有多项作业,可以指定作业编号,如 fg %1,将编号为1的作业带到前台。

  • 恢复后台运行: 使用 bg 命令可以将暂时停止(Stopped状态)的作业恢复到后台运行。同样,可以指定作业编号,如 bg %2,恢复编号为2的作业。

  • 停止后台作业: 可以使用 kill 命令结合作业的PID来终止后台作业。

  1. 其他工具辅助后台运行
    • nohup: 当使用 nohup command & 时,命令将在后台运行,且不受挂断信号(SIGHUP)的影响,即使用户注销后也能继续执行。输出会被重定向到nohup.out文件。

    • screen 或 tmux: 这些终端复用器提供了持久的会话环境,用户可以在其中启动后台任务,即使断开连接后,只要重新连接到同一个会话,就能看到任务仍在运行。

    • at 或 batch: 这些命令用于安排一次性任务在特定时间或当系统负载较低时在后台执行。

综上所述,Shell指令后台运行意味着该指令在不占用用户交互式终端会话的情况下被执行,用户可以继续在终端中进行其他操作,同时后台任务能够在一定程度上独立于用户的登录状态持续运行。通过使用&符号、nohupscreen等工具,用户可以灵活地管理和监控这些后台任务。

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

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

相关文章

PostgreSQL 窗口函数汇总

文章目录 前言一、什么是窗口函数?二、常用的4类窗口函数三、PARTITION BY 子句四、窗口函数示例1. 聚合计算1.1 sum() 函数1.2 count() 函数1.3 avg() 函数2. 分组排序2.1 row_number() 函数2.2 rank() 函数2.3 dense_rank() 函数3. 分组查询

ARM LPD-500 和PCK-600介绍

LPD-500是ARM公司提供的一个低功耗分发器(Low Power Distributor),它是一个独立的可配置组件,用于分发Q-Channel接口到多个设备。LPD-500支持多个设备之间的电源管理,允许它们在不同的低功耗状态之间转换,从…

力扣练习题(2024/4/16)

1买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

单链表经典算法题分析

目录 一、链表的中间节点 1.1 题目 1.2 题解 1.3 收获 二、移除链表元素 2.1 题目 2.2 题解 2.3 收获 2.4递归详解 三、反转链表 3.1 题目 3.2 题解 3.3 解释 四、合并两个有序列表 4.1 题目 4.2 题解 4.3 递归详解 声明:本文所有题目均摘自leetco…

《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)

1.简介 页面对象模型(Page Object Model)在Selenium Webdriver自动化测试中使用非常流行和受欢迎,作为自动化测试工程师应该至少听说过POM这个概念。本篇介绍POM的简介,接下来宏哥一步一步告诉你如何在你JavaSelenium3自动化测试…

13个Java基础面试题

Hi,大家好,我是王二蛋。 金三银四求职季,特地为大家整理出13个 Java 基础面试题,希望能为正在准备或即将参与面试的小伙伴们提供些许帮助。 后续还会整理关于线程、IO、JUC等Java相关面试题,敬请各位持续关注。 这1…

【ROS2】搭建ROS2-Humble + Vscode开发流程

【ROS2】搭建ROS2-Humble Vscode开发流程 文章目录 【ROS2】搭建ROS2-Humble Vscode开发流程1.基本环境配置2.搭建Vscode开发环境 1.基本环境配置 基本的环境配置包括以下步骤: 安装ROS2-Humble,可以参考这里安装一些基本的工具,可以参考…

nuxt3项目使用swiper11插件实现点击‘’返回顶部按钮‘’返回到第一屏

该案例主要实现点击返回顶部按钮返回至swiper第一个slide。 版本: "nuxt": "^3.10.3", "pinia": "^2.1.7", "swiper": "^11.0.7", 官方说明 swiper.slideTo(index, speed, runCallbacks) Run transit…

浅析MySQL 8忘记密码处理方式

对MySQL有研究的读者,可能会发现MySQL更新很快,在安装方式上,MySQL提供了两种经典安装方式:解压式和一键式,虽然是两种安装方式,但我更提倡选择解压式安装,不仅快,还干净。在操作系统…

【数据结构1-基本概念和术语】

这里写自定义目录标题 0.数据,数据元素,数据项,数据对项,数据结构,逻辑结构,存储结构1.结构1.1逻辑结构1.2存储结构1.2.1 顺序结构1.2.2链式结构 1.3数据结构1.3.1基本数据类型1.3.2抽象数据类型1.3.2.1一个…

Java SpringBoot基于微信小程序的高速公路服务区充电桩在线预定系统,附源码

博主介绍:✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇&#x1f3…

05节-51单片机-模块化编程

1.两种编程方式的对比 传统方式编程: 所有的函数均放在main.c里,若使用的模块比较多,则一个文件内会有很多的代码,不利于代码的组织和管理,而且很影响编程者的思路 模块化编程: 把各个模块的代码放在不同的…

STM32外设配置以及一些小bug总结

USART RX的DMA配置 这里以UART串口1为例,首先点ADD添加RX和TX配置DMA,然后模式一般会选择是normal,这个模式是当DMA的计数器减到0的时候就不做任何动作了,还有一种循环模式,是计数器减到0之后,计数器自动重…

Echats 引入地图(二) 之中国地图省份高亮

效果图: 代码: series: [{type: map,map: china,zoom: 1.2, // 地图放大aspectScale: 0.8, //地图宽高比例roam: true, //地图缩放、平移// 滚轮缩放的极限控制scaleLimit: {min: 0.5, //缩放最小大小max: 6, //缩放最大大小},itemStyle…

使用Android studio,安卓手机编译安装yolov8部署ncnn,频繁出现编译错误

从编译开始就开始出现错误,解决步骤: 1.降低graddle版本,7.2-bin --->>> 降低为 6.1.1-all #distributionUrlhttps\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionUrlhttps\://services.gradle.org/di…

springboot配置文件详解

springboot配置文件详解 ​ 在之前的项目开发中,我们可以使用xml,properties进行相关的配置,这种配置方式比较简单,但是在应对复杂的商业需求下,多环境和编程化的配置无法得到满足,因此springboot为我们提供了YAML的配…

5.HC-05蓝牙模块

配置蓝牙模块 注意需要将蓝牙模块接5v,实测接3.3v好像不太好使的样子 首先需要把蓝牙模块通过TTL串口模块接到我们的电脑,然后打开我们的串口助手 注意,我们现在是配置蓝牙模块,所以需要进入AT模式,需要按着蓝牙模块上的黑色小按钮再上电,这时候模块上的LED灯以一秒慢闪一次…

性能工具之emqtt-bench BenchMark 测试示例

文章目录 一、前言二、典型压测场景三、机器准备四、典型压测场景1、并发连接2、消息吞吐量测试2.1 1 对 1(示例)2.2 多对1(示例)2.3 1对多(示例) 五、遇到的问题client(): EXIT for {shutdown,eaddrnotava…

IDM2024破解版 IDM软件破解注册序列号 idm教程 idm序列激活永久授权 Internet Download Manager网络下载加速神器

你是不是感觉下载东西资源的时候,下载的非常慢,即便是五十兆的光纤依旧慢、是不是想下载网页上的视频但不知如何进行下载……这些问题是否一直在困扰着您,今日小编特意我大家带来了这款IDM 2024破解版。 众所周知,IDM是一款功能强…

ChatGPT实用指南2024

随着ChatGPT技术的演进,越来越多的人开始在工作中利用此工具。以下是关于ChatGPT的实用指南,适合不太熟悉此技术的朋友参考。 一、ChatGPT概述 1. ChatGPT是什么? ChatGPT是基于OpenAI开发的GPT大型语言模型的智能对话工具。它能够通过自然语…