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

这篇具有很好参考价值的文章主要介绍了后端开发从小白到大佬之Linux的命令(一):nohup,详解底层!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


nohup,工作经验与积累,linux,python,运维

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 命令进行过滤。例如:

nohup,工作经验与积累,linux,python,运维

如何关闭进程

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; ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓文章来源地址https://www.toymoban.com/news/detail-836684.html

到了这里,关于后端开发从小白到大佬之Linux的命令(一):nohup,详解底层!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python中(限小白,大佬勿入)python开发中的trick:常量

    开场白         我是小白,今天被前端骂了一顿:我们交接不是说好了就给你四个变量:A,B。C。D。你这命名的这么具体,我这边给你传值不是很方便啊(因为不同模块有复用的图片路径),我说“那我改?” 后续处理         第一、对接遇到问题         这以后对接不

    2024年02月12日
    浏览(43)
  • Linux nohup后台启动/ 后台启动命令中nohup 、&、重定向的使用

    经常看到一些jar包,sh脚本用nohup命令后台启动,今天就讲解一下nohup的用法。 nohup主要作用就是可以在后台运行,并可以选择将日志输出到指定文件。如启动jar包,若使用 java -jar demo.jar 的方式启动程序当窗口关闭的时候程序也停止了,而且日志会直接输出到控制台非常不直

    2024年02月04日
    浏览(42)
  • Linux中安装和使用nohup命令

    nohup 英文全称 no hang up(不挂起) 当我们把项目部署到服务器上时,只有一直保持linux终端的连接才能够运行项目,当我们把连接软件Xshell或者Finalshell连接工具关掉时,项目也就停止运行。只要用了nohup命令,我们的项目就能够一直运行了,此时就实现了我们需求。 例如:

    2023年04月25日
    浏览(33)
  • linux后台执行命令:&与nohup的用法

    背景:电脑使用ssh工具远程连接服务器跑深度学习的时候,本地的终端叉掉的时候,会把服务器上的代码进程一起叉掉了,这在实际场景中,非常的不方便,因为不可避免会遭受不可抗拒的原因需要代码只在服务器上跑,比如,网络原因ssh连接不稳定,本地电脑断电等。 直接

    2024年02月10日
    浏览(41)
  • linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’

    Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 在程序结尾来让程序自动运行。 比如我们要运行weblogic在后台: ./startWebLogic.sh 但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 结尾。 但是如果终端关

    2024年02月04日
    浏览(44)
  • Linux shell 命令中nohup 、&、重定向的使用

    一、nohup 和 使用方法 1.1、 nohup (不挂断) nohup 是 no hung up 的缩写,意思是不挂断 。 使用 Xshell 等Linux 客户端工具,远程执行 Linux 脚本时,有时候会由于网络问题,导致客户端失去连接,终端断开,脚本运行一半就意外结束了。这种时候,就可以用 nohup 指令来运行指令,即

    2024年02月22日
    浏览(48)
  • nohup 输出到指定文件 Linux nohup 实现命令后台运行并输出或记录到指定日志文件 设置日志结果文件名称 重定向到某个文件 标准误 标准错误输出定向 输入报错信息保留

    # yourcommand:启动对象命令。可以跟该命令需要的各种参数。 # 是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出. nohup与结合起来,可以实现不挂断的后台运行。 实现屏幕输出记录到日志文件 # 0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standa

    2024年02月05日
    浏览(58)
  • GitHub入门介绍:从小白到大佬的旅程

    🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页 ——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础

    2024年02月03日
    浏览(38)
  • 【数据结构】带头双向循环链表(小白作品,如果有误,请大佬指点)

    带头双向循环链表(Doubly Circular Linked List with a Head)是一种链表数据结构,它具有以下特点: 头节点(哨兵位):带头双向循环链表包含一个头节点,它位于链表的起始位置,并且不存储实际数据。头节点的前驱指针指向尾节点,头节点的后继指针指向第一个实际数据节点。

    2024年04月28日
    浏览(28)
  • nohup 命令之 nohup: ignoring input and appending output to ‘nohup.out’

    当我在linux中使用nohup 命令的时候,出现了这个错误: nohup  英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup  命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup

    2023年04月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包