Linux nohup命令和

参考资料

  1. linux后台运行nohup命令的使用及2>&1字符详解

目录

  • 前期准备
  • 一. 基本语法
  • 二. 执行时不指定日志文件
  • 三. 执行后不想要日志文件
  • 四. nohup命令的执行与kill
    • 4.1 执行
    • 4.2 kill


前期准备

📄handle_file.sh

#!/bin/bash

echo "文件复制开始..."

# 使脚本睡眠10秒中,模拟文件复制耗时操作...
sleep 120

echo "文件复制结束..."

一. 基本语法

nohup命令可以确保即使终端会话结束,输入的命令也能够持续运行。
常见的应用场景包括长时间运行的任务,如备份、数据处理等。

例如当我们执行一个备份命令需要花费10个小时,我们不需要一直守在电脑上等待备份完成,完全可以在终端上执行完命令之后,直接关掉终端做别的时候,然后第二天再来确认备份是否完成。

nohup 命令 [参数] &
  • &:表示将命令放在后台执行。
  • > result.log:将脚本的执行结果输出到result.log这个文件中
  • 2>&1:是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
    相当于将handle_file.sh脚本执行过程中出现的错误输出到result.log文件中。
    • 0 表示stdin标准输入,用户键盘输入的内容
    • 1 表示stdout标准输出,输出到显示屏的内容
    • 2 表示stderr标准错误,报错的内容
  • /dev/null:此处的作用只是为了避免nohup: ignoring input这个提示消息被添加到result.log文件中,该消息的产生并不影响程序执行,该配置项加不加无所谓。
# 如果sh脚本有执行权限的执行方法
nohup ./handle_file.sh > result.log 2>&1 < /dev/null &
# 如果sh脚本没有执行权限的执行方法
nohup sh ./handle_file.sh > result.log 2>&1 < /dev/null &

二. 执行时不指定日志文件

  • 若不指定具体的日志文件,默认会在当前所在路径下产生一个nohup.out文件用来存放执行过程中的日志。
nohup sh ./handle_file.sh &

在这里插入图片描述


三. 执行后不想要日志文件

  • 若执行过程中不想要日志,可以把正常输出和错误都放到/dev/null中进行销毁
  • /dev/null 是一个特殊的设备文件,在 Linux 和类 Unix 系统中用于丢弃数据。
    当将输出重定向到 /dev/null 时,数据实际上不会被写入到任何地方,而是被丢弃。
    因为 /dev/null 文件不会保存数据,也不会产生任何输出。
nohup sh ./handle_file.sh > /dev/null 2>&1 &

在这里插入图片描述


四. nohup命令的执行与kill

4.1 执行

  • 执行之后可以看到sh脚本的线程号,本案例中,线程号为 7051
  • 执行之后还可以通过 ps -ef | grep "脚本名"来查询在后台的状况
  • 因为我们在sh脚本中设置了线程睡眠,因此刚执行完之后,立马查看result.log内容只有一行
nohup sh ./handle_file.sh > result.log 2>&1 < /dev/null &

在这里插入图片描述
在这里插入图片描述

4.2 kill

⏹如果脚本执行之后很长时间还是没有执行完,可以通过kill命令杀死脚本线程,强制结束

语法

kill -9 要杀死的线程PID

在这里插入图片描述

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

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

相关文章

2.11 运算符

1、选择题 1.1、若有以下程序 main() { char a1,b2; printf("%c,",b); printf("%d\n",b-a); } 程序运行后的输出结果是 C A&#xff09;3,2 B&#xff09;50,2 C&#xff09;2,2 D&#xff09;2,50 解析&#xff1a;b是先赋值后自加&#…

MacOS - M1芯片 Mac 在“恢复”模式中启用系统扩展教程

部分软件需要开启系统扩展才能正常使用&#xff0c;但是默然M1芯片的Mac不能直接打开系统扩展&#xff0c;如下两图。 若要启用系统扩展&#xff0c;您需要在“恢复”环境中修改安全性设置。 若要执行此操作&#xff0c;请将系统关机&#xff0c;然后按住触控ID或电源按钮以开…

寻找最优的路测线 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 评估一个网络的信号质量&#xff0c;其中一个做法是将网络划分为栅格&#xff0c;然后对每个栅格的信号质量计算。 路测的时候&#xff0c;希望选择一条信号最好…

《数电》理论笔记-第1章-逻辑代数基础

参考&#xff1a;视频 和 《数字电路与逻辑设计》 电子书 一&#xff0c;第1章 逻辑代数基础 1 数字量和模拟量 略 2 数制&#xff08;十进制&#xff0c;二进制&#xff0c;八进制和十六进制&#xff09; 拨电话&#xff08;BoDH&#xff09;---&#xff08;2八10十六&…

【Django】Django项目部署

项目部署 1 基本概念 项目部署是指在软件开发完毕后&#xff0c;将开发机器上运行的软件实际安装到服务器上进行长期运行。 在安装机器上安装和配置同版本的环境[python&#xff0c;数据库等] django项目迁移 scp /home/euansu/Code/Python/website euansuxx.xx.xx.xx:/home…

labelImg和labelme区别

LabelImg和LabelMe是两种常用的标注工具&#xff0c;用于创建标注数据集以供机器学习和计算机视觉任务使用。虽然它们都具有相似的目标&#xff0c;即方便用户进行图像标注&#xff0c;但在某些方面存在一些区别。下面将介绍LabelImg和LabelMe的区别及联系&#xff0c;同时提供…

如何写出别人写不出的内容(译)

&#xff08;译者序&#xff1a;这篇文章不只是写作&#xff0c;对信息获取、阅读也都有启发。随着社交媒体和 AI 的发展&#xff0c;人们越来越被动的接收海量信息&#xff0c;如何主动查找与整理对自己有用的内容&#xff0c;将是一个不可或缺的能力。&#xff09; 原文&…

模型 PMF(产品市场契合度)

系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。产品与市场高度契合。 1 PMF(Product Market Fit)产品市场契合度 的应用 1.1 PMF在创业过程中的应用-Vincy公司的产品PartnerShare 实现PMF需要企业深入了解目标市场的需求和用户的反馈&…

导数的定义【高数笔记】

【含义】可以抽象成&#xff0c;在一个极其短的时间段内&#xff0c;温度差 / 时间差 【本质】瞬间的平均值 【分类】可以分成几类&#xff1f;每类需要注意的点 【导数存在的必要条件】 【导数与极限的关系】可以参考导数的定义的式子 【题型解法】分几个题型&#xff1f;每个…

C++ shell - 在线 C++ 编译器

C shell - 在线 C 编译器 1. C shell2. Example program3. Options4. ExecutionReferences 1. C shell C Shell v2 https://cpp.sh/ https://cpp.sh/about.html C Shell v2, free online compiler, proudly uses emscripten to compile your code. emscripten is a clang-ba…

联想DP510、DP520、DP515打印机恢复出厂和自定义纸张方法

联想DP510、DP520、DP515恢复出厂设置方法 一、按下打印方式键&#xff0c;同时开机&#xff0c;直至打印头动作停止时松手&#xff1b; 二、水平装入 A4 纸&#xff0c;打印机自动调入并开始打印&#xff0c;若打印机将纸退出&#xff0c;将纸放平重新装入&#xff1b; 三、…

寒假9-蓝桥杯训练

//轨道炮 #include<iostream> using namespace std; #include<algorithm> int logs[100010]; int main() {int n;cin >> n;for (int i 1;i < n;i){cin >> logs[i];}sort(logs 1, logs n 1);int ans 1000000000;for (int i 2;i < n;i){if (…

Java:字符集、IO流 --黑马笔记

一、字符集 1.1 字符集的来历 我们知道计算机是美国人发明的&#xff0c;由于计算机能够处理的数据只能是0和1组成的二进制数据&#xff0c;为了让计算机能够处理字符&#xff0c;于是美国人就把他们会用到的每一个字符进行了编码&#xff08;所谓编码&#xff0c;就是为一个…

【AutoML】AutoKeras 进行 RNN 循环神经网络训练

由于最近这些天都在人工审查之前的哪些问答数据&#xff0c;所以迟迟都没有更新 AutoKeras 的训练结果。现在那部分数据都已经整理好了&#xff0c;20w 的数据最后能够使用的高质量数据只剩下 2k。这 2k 的数据已经经过数据校验并且对部分问题的提问方式和答案内容进行了不改变…

为什么Python是数据科学家的首选语言

这篇文章全面探讨了Python作为数据科学领域首选语言的原因。从Python的历史、特性&#xff0c;到在数据科学中的应用实例&#xff0c;再到与其他数据科学语言的比较&#xff0c;以及在实际企业中的应用&#xff0c;我们深入剖析了Python的优势与挑战&#xff0c;最后对Python的…

Linux:信号的保存

文章目录 信号相关概念信号递达信号未决信号阻塞内核中的示意图 信号集的操作函数 前面对于信号的产生中对操作系统有了一个基础的认知&#xff0c;对于一个真正的操作系统来说&#xff0c;进程是由操作系统进行调度的&#xff0c;那操作系统本身也是代码&#xff0c;是由谁进行…

算法沉淀——模拟(leetcode真题剖析)

算法沉淀——模拟 01.替换所有的问号02.提莫攻击03.Z字形变换04.外观数列05.数青蛙 模拟算法是一种通过模拟问题的描述或场景来解决问题的算法。这种算法的核心思想是按照问题描述的规则&#xff0c;逐步模拟问题的发展过程&#xff0c;从而得到问题的解决方案。通常&#xff0…

python-自动化篇-终极工具-用GUI自动控制键盘和鼠标-pyautogui

文章目录 用GUI自动控制键盘和鼠标pyautogui 模块鼠标屏幕位置——移动地图——pyautogui.size鼠标位置——自身定位——pyautogui.position()移动鼠标——pyautogui.moveTo拖动鼠标滚动鼠标 键盘按下键盘释放键盘 开始与结束通过注销关闭所有程序 用GUI自动控制键盘和鼠标 在…

InternLM大模型实战-4.XTuner大模型低成本微调实战

文章目录 前言笔记正文XTuner支持模型和数据集 微调原理跟随文档学习快速上手自定义微调准备数据准备配置文件 MS-Agent微调 前言 本文是对于InternLM全链路开源体系系列课程的学习笔记。【XTuner 大模型单卡低成本微调实战】 https://www.bilibili.com/video/BV1yK4y1B75J/?…

python coding with ChatGPT 打卡第20天| 二叉搜索树:搜索、验证、最小绝对差、众数

相关推荐 python coding with ChatGPT 打卡第12天| 二叉树&#xff1a;理论基础 python coding with ChatGPT 打卡第13天| 二叉树的深度优先遍历 python coding with ChatGPT 打卡第14天| 二叉树的广度优先遍历 python coding with ChatGPT 打卡第15天| 二叉树&#xff1a;翻转…