后端开放从小白到大佬之Linux的命令(一):nohup,详解底层!!!

news2024/11/23 22:16:58

文章目录

  • nohup
    • nohup命令初识
    • nohup命令语法
    • nohup的原理
    • 如何查看nohup的进程
      • ps | grep
      • pgrep
      • jobs
      • pu -ux
    • 如何关闭进程
      • kill
      • pkill
  • 结尾

在这里插入图片描述

nohup

nohup命令初识

在 Linux 中,nohup 命令 用于在后台运行命令并将其输出重定向到一个文件中,即使退出终端或关闭会话,该命令也能够持久的运行。 通常情况下,我们使用 nohup 命令来运行那些需要较长时间才能完成的任务,或者需要在长时间运行的过程中保持连接的任务,我们java的jar包就是一个很好的选择。

nohup命令语法

语法:

nohup command [arg...] [arg &]
  • command :是要运行的命令及其参数,
  • & :可以让命令在后台运行
  • nohup 命令会将命令的输出转向到一个名为 nohup.out 的文件中。这个是默认的日志命令,可以通过tail -f nohup.out查看
  • 如果您不想将输出重定向到 nohup.out 文件,您可以使用 >>> 运算符将输出重定向到其他文件中。
nohup java -jar xxx.jar > nohup.out &

nohup的原理

nohup 命令的原理是 将要执行的命令与当前终端会话进行分离,使其脱离终端的控制,并在后台持续运行。它实际上是使用了两个关键技术:进程分离和输出重定向。

  1. 进程分离:nohup 命令使用了 forkexec 系统调用来创建一个子进程,并使子进程成为一个新的会话组的领导者。 这样可以使子进程与终端断开关联,进程不再受到终端关闭或用户注销的影响。
  2. 输出重定向:nohup 命令将子进程的标准输出(STDOUT)和标准错误输出(STDERR)重定向到一个文件中,默认情况下是 nohup.out 文件。这样即使终端关闭,命令的输出依然可以写入到文件中。

同时需要注意以下几点:

  • 当使用 nohup 命令运行一个程序时,该程序的标准输入(STDIN)将会被关闭。因此,如果程序需要从标准输入读取数据,可能需要通过其他方式提供输入。
  • nohup 命令执行时,会产生一个 子进程,可能会导致一些资源的占用。如果运行的是占用资源较多的程序,需要注意系统的负载情况。
  • nohup 命令并不会使命令变为守护进程(daemon process)。如果您希望在系统启动时自动运行某个命令,并将其作为守护进程运行,可以考虑使用其他工具,如 systemdinit.d

如何查看nohup的进程

ps | grep

使用 ps 命令结合 grep 过滤器来查找包含特定关键词的进程。例如,使用以下命令可以查找包含关键词 “nohup” 的进程:

ps -ef | grep nohup

该命令将显示与 “nohup” 相关的进程列表。

pgrep

可以使用 pgrep 命令以及进程的名称或其他标识符来查找匹配的进程。例如,使用以下命令可以查找根据进程名称 “your_process_name” 执行的进程:

pgrep -l your_process_name

jobs

jobs 是一个用于查看当前终端会话中正在运行的作业(job)的命令。作业指的是在前台或后台运行的进程或命令。

使用 jobs 命令可以列出当前终端会话中的作业,并显示作业的编号和状态信息。以下是 jobs 命令的基本用法:

jobs [options]

常用的选项包括:

  • -l:显示详细信息,包括作业编号、进程 ID 和作业状态。
  • -n:只显示最近创建的未通知作业。
  • -p:只显示进程 ID。
  • -r:只显示运行中的作业。
  • -s:只显示停止的作业。

示例用法:

$ sleep 60 &  # 在后台运行 sleep 命令
[1] 12345

$ jobs
[1]+  Running                 sleep 60 &

在上面的示例中,sleep 60 命令被放到后台运行,并显示了作业编号 [1]、进程 ID 12345 和作业状态 Running

pu -ux

ps -ux 是一个常用的 Linux 命令,用于显示当前系统中运行的进程的详细信息。下面是 ps -ux 命令的解释:

ps -ux
  • -u 选项用于显示与当前用户相关的进程信息。
  • -x 选项用于显示没有控制终端的进程。

该命令将显示包括以下列在内的进程列表:

  • USER:进程所属的用户名。
  • PID:进程的 ID。
  • %CPU:进程使用的 CPU 百分比。
  • %MEM:进程使用的内存百分比。
  • VSZ:进程使用的虚拟内存(以 KB 为单位)。
  • RSS:进程使用的实际物理内存(以 KB 为单位)。
  • TTY:进程所关联的终端。
  • STAT:进程的状态(R 表示运行,S 表示睡眠,Z 表示僵尸等)。
  • START:进程启动的时间或日期。
  • TIME:进程消耗的 CPU 时间。
  • COMMAND:启动进程的命令或可执行文件的名称。

示例输出如下:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 168872  9096 ?        Ss   2023   0:05 /sbin/init
root         2  0.0  0.0      0     0 ?        S    2023   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        I<   2023   0:00 [rcu_gp]
...

注意,ps -ux 命令会列出所有正在运行的进程的信息,包括系统进程和其他用户的进程。如果想要限制输出只显示与当前用户相关的进程,可以结合使用 grep 命令进行过滤。例如:

在这里插入图片描述

如何关闭进程

kill

使用kill命令关闭进程。kill命令用于向进程发送信号,可以用来终止一个进程。首先需要找到要关闭的进程的进程ID(PID),可以使用ps命令或者top命令来查看所有正在运行的进程。然后使用kill命令加上进程ID来关闭进程。例如,要关闭进程ID为1234的进程,可以运行以下命令:

kill 1234

默认情况下,kill命令发送的是SIGTERM信号,这是一个终止进程的常规信号。如果进程不响应SIGTERM信号,可以使用kill命令加上-9选项来发送SIGKILL信号,强制终止进程。例如:

kill -9 1234

pkill

使用pkill命令关闭进程。pkill命令可以根据进程的名称或者其他属性来关闭进程。例如,要关闭名称为"process_name"的进程,可以运行以下命令:

pkill process_name

默认情况下,pkill命令发送的是SIGTERM信号,可以使用-9选项来发送SIGKILL信号,强制终止进程。

使用killall命令关闭进程。killall命令可以根据进程的名称来关闭进程。例如,要关闭名称为"process_name"的进程,可以运行以下命令:

killall process_name

默认情况下,killall命令发送的是SIGTERM信号,可以使用-9选项来发送SIGKILL信号,强制终止进程。

结尾

恭喜小伙伴完成本篇文章的学习,相信文章的内容您已经掌握得十分清楚了,如果您对工作技巧的知识十分好奇,请接下来跟着学习路径完成相关的学习哦,相信你会做到的~~~

↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

darr; ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

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

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

相关文章

一文教你学会ArcGIS Pro地图设计与制图系列全流程(2)

ArcGIS Pro做的成果图及系列文章目录&#xff1a; 系列文章全集&#xff1a; 《一文教你学会ArcGIS Pro地图设计与制图系列全流程&#xff08;1&#xff09;》《一文教你学会ArcGIS Pro地图设计与制图系列全流程&#xff08;2&#xff09;》《一文教你学会ArcGIS Pro地图设计与…

PHP 图书资料管理系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 图书资料管理系统是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 PHP 图书资料管理系统mysql数据库web结构apach 代码 https://download.csdn.net/down…

pip install open-interpreter报错,无法安装

标题pip install open-interpreter报错&#xff0c;无法安装 ERROR: Could not find a version that satisfies the requirement open-interpreter (from versions: none) ERROR: No matching distribution found for open-interpreter 另外发现自己换了很多国内镜像源&#x…

提升推广效果的秘密武器,快速学会电子传单制作

随着科技的发展&#xff0c;电子传单成为了企业宣传的重要工具之一。相比传统纸质传单&#xff0c;电子传单更加灵活、便捷&#xff0c;并且能够通过网络快速传播。想要制作一份精美的电子传单&#xff0c;我们可以利用一些专业的H5制作平台/工具&#xff0c;下面就来介绍一下具…

【考研数学】概率论与数理统计 —— 第三章 | 二维随机变量及其分布(2,常见的二维随机变量及二维变量的条件分布和独立性)

文章目录 引言四、常见的二维随机变量4.1 二维均匀分布4.2 二维正态分布 五、二维随机变量的条件分布5.1 二维离散型随机变量的条件分布律5.2 二维连续型随机变量的条件分布 六、随机变量的独立性6.1 基本概念6.2 随机变量独立的等价条件 写在最后 引言 有了上文关于二维随机变…

delphi中使用CADVCL 10.0 Enterprise控件解析DXF文件生成图片保存到本地

使用案例demos中GettingStarted案例 修改OnClick方法 更换代码 varvDrawing: TsgCADDXFImage;I: Integer;vEnt: TsgDXFEntity;vDXFImage:TsgCADImage;Bitmap: TBitmap;jpg: TJpegImage; beginvDrawing : TsgCADDXFImage.Create;vDrawing.LoadFromFile(d:\Entities.dxf);for …

创新驱动的未来:探索企业专利信息API的应用

引言 在今天的商业环境中&#xff0c;创新是企业成功的关键因素之一。创新不仅可以为企业带来竞争优势&#xff0c;还可以促使行业不断发展和演进。而要实现创新&#xff0c;保护知识产权、了解市场动态以及获得有关竞争对手创新活动的信息至关重要。企业专利信息API为企业提供…

springboot+vue智能诊后随访系统 java医院挂号预约诊断系统

本系统是基于java前端架构Vue用java编程语言及javascript、CSS、HTML语言进行编写设计并实现相关功能的。 设计步骤及措施&#xff1a; &#xff08;1&#xff09;确定项目名称、项目研究内容&#xff0c;开题报告提交及修改。 &#xff08;2&#xff09;项目开发准备&#xff…

浅谈软件测试面试一些常见的问题

一、简历及岗位匹配度 说到简历&#xff0c;其实这一点是很重要但又被很多职场小白忽视的问题。经常有人说我投了很多简历&#xff0c;但是没有公司给我打电话&#xff0c;怎么办&#xff1f; 首先&#xff0c;应该明白的一点&#xff1a;面对求职市场的激烈竞争性&#xff0…

最新AI创作系统ChatGPT商业运营源码+AI绘画+详细图文搭建部署教程

一、AI创作系统 SparkAi系统是基于很火的GPT提问进行开发的Ai智能问答系统。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT系统&#xff1f;小编这里写一个详细图文教程吧&#x…

华为云云耀云服务器L实例评测|在云耀云服务器L实例使用Docker搭建redis集群——三主三从集群

购买云耀云服务器 L 实例 华为云耀云服务器 L 实例是一款轻量级云服务器&#xff0c;开通选择实例即可立刻使用&#xff0c;不需要用户再对服务器进行基础配置。新用户还有专享优惠&#xff0c;2 核心 2G 内存 3M 带宽的服务器只要 89 元/年&#xff0c;可以点击华为云云耀云服…

HTMl案例二:注册页面

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>综合案例-注册页面</title> </head><…

paddle2.3-基于联邦学习实现FedAVg算法

目录 1. 联邦学习介绍 2. 实验流程 3. 数据加载 4. 模型构建 5. 数据采样函数 6. 模型训练 1. 联邦学习介绍 联邦学习是一种分布式机器学习方法&#xff0c;中心节点为server&#xff08;服务器&#xff09;&#xff0c;各分支节点为本地的client&#xff08;设备&#…

8+铜死亡+分型+预后模型

今天给同学们分享一篇铜死亡分型预后模型的生信文章“Signature construction and molecular subtype identification based on cuproptosis-related genes to predict the prognosis and immune activity of patients with hepatocellular carcinoma”&#xff0c;这篇文章于2…

Vue实现Hello World

<div id"aa"> <p>{{h}}</p> </div> <script src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"></script> <script> const hello new Vue({ el:#aa, data:{ h : Hello World } }) </script>

Bigemap在地质矿产行业的应用

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 首先 在地质矿产勘查中 &#xff0c;Gis技术可以用来被直接利用到工作分析里面&#xff0c;可以快速获取存储和管理大量空间数据 比如结合卫星影像和无人机遥感数据&am…

ASN1编码查看工具

ASN1编码查看工具 多页面ASN1编码查看工具&#xff0c;支持DER和base64编码&#xff0c;支持数据高亮 多页面ASN1编码查看工具&#xff0c;支持DER和base64编码&#xff0c;支持数据高亮

MySQL学习笔记16

MySQL的用户管理和权限管理&#xff1a; 在MySQL中创建更多的用户&#xff0c;不可能都使用root用户。root用户的权限太高&#xff0c;一个误操作&#xff0c;容易造成很大的失误。 注意&#xff1a;MySQL中不能单纯通过用户名来说明用户&#xff0c;必须加上主机&#xff0c;…

[每周一更]-(第63期):Linux-nsenter命令使用说明

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。 1、用途 一个最典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级&#xff0c;是不包含较为基础的命令的&#xff0c; 比如说ip address&#xff0c;ping&#xff0c;t…

ENVI IDL:MODIS SWATH产品的点位-像元提取(另附Python代码)

目录 01 说明 1.1 ENVI IDL本小节实验说明 1.2 Python本小节实验说明 02 代码 2.1 我的ENVI IDL代码 2.2 实验给定ENVI IDL代码 2.3 我的python代码 2.4 实验给定python代码 01 说明 实验说明 提取/coarse_data/chapter_3/modis_swath/目录下所有MODIS气溶胶产品中Image…