Advertisement

简述Linux环境下nohup与screen命令执行后台进程的方式及其差异

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本文介绍了在Linux系统中使用nohup和screen命令将程序置入后台运行的方法,并对比了两者的特性和适用场景。 使用SSH终端(比如putty或xshell)连接到Linux服务器并运行耗时任务时,可能会遇到需要几个小时甚至几天才能完成的情况。在这种情况下,如果直接在前台执行这些命令会导致终端被占用,并且无法同时处理其他任务。因此,通常会将这类长时间运行的任务放到后台来执行。 通过在命令后加上 & 可以将其置于后台运行: ``` command & ``` 使用这种方式启动的进程不会响应Ctrl + C中断信号,因为它们对SIGINT信号具有免疫力;然而,如果你直接关闭终端窗口,则这些任务会被终止。因此,在这种情况下,当您希望正常退出SSH会话而不影响正在执行的任务时,请使用exit命令。 另一种方法是利用nohup(不挂断)来运行长时间的进程: ``` nohup command ``` 这将使程序继续在后台运行,并且不会因为关闭终端而停止。同时,它还会生成一个名为 nohup.out 的文件以记录输出信息。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Linuxnohupscreen
    优质
    本文介绍了在Linux系统中使用nohup和screen命令将程序置入后台运行的方法,并对比了两者的特性和适用场景。 使用SSH终端(比如putty或xshell)连接到Linux服务器并运行耗时任务时,可能会遇到需要几个小时甚至几天才能完成的情况。在这种情况下,如果直接在前台执行这些命令会导致终端被占用,并且无法同时处理其他任务。因此,通常会将这类长时间运行的任务放到后台来执行。 通过在命令后加上 & 可以将其置于后台运行: ``` command & ``` 使用这种方式启动的进程不会响应Ctrl + C中断信号,因为它们对SIGINT信号具有免疫力;然而,如果你直接关闭终端窗口,则这些任务会被终止。因此,在这种情况下,当您希望正常退出SSH会话而不影响正在执行的任务时,请使用exit命令。 另一种方法是利用nohup(不挂断)来运行长时间的进程: ``` nohup command ``` 这将使程序继续在后台运行,并且不会因为关闭终端而停止。同时,它还会生成一个名为 nohup.out 的文件以记录输出信息。
  • Linuxnohup和&使用详解
    优质
    本文深入探讨了在Linux系统中nohup与&两个命令的应用场景及其区别,帮助用户更好地掌握后台进程管理技巧。 本段落主要介绍了Linux中nohup与&的用法及区别,并通过示例代码进行了详细讲解。对于学习或使用Linux的朋友来说,这篇文章具有一定的参考价值。希望需要了解这方面知识的人能够从中学到有用的内容。
  • Linuxscreen用法
    优质
    《Linux中的screen命令及其用法》:本文详细介绍了Linux系统中screen命令的功能、使用方法及应用场景,帮助用户更好地管理和维护长时间运行的任务。 Linux中的`screen`命令是一个非常实用的工具,尤其对于远程服务器管理和长时间运行的任务而言。它允许用户在单个终端会话中创建多个独立的“窗口”,每个窗口都可以运行不同的命令或程序,即使用户退出终端或者网络中断,这些窗口也会保持运行状态。下面我们将详细介绍`screen`命令的使用方法和重要性。 ### 1. `screen`简介 `screen`是由GNU项目开发的开源软件,它的主要功能是在命令行环境中提供多窗口管理。用户可以在不同的窗口之间轻松切换,同时进行多个任务,而无需频繁地打开和关闭终端。这对于开发者、系统管理员以及需要在终端中长时间运行程序的人来说特别有用,因为它们可以随时检查和控制程序的运行状态,而不会因为意外断开连接而丢失工作进度。 ### 2. `screen`安装 在大多数Linux发行版中,可以通过包管理器来安装`screen`。例如,在Ubuntu或Debian上,可以使用`apt-get`命令: ```bash sudo apt-get install screen ``` 在CentOS或Fedora上,使用`yum`或`dnf`: ```bash sudo yum install screen # 或者 sudo dnf install screen ``` ### 3. `screen`基本用法 - **创建新的screen会话**:`screen -S `,如`screen -S mysession` - **列出所有screen会话**:`screen -ls` - **恢复连接到特定会话**:`screen -r ` 或 `screen -r ` - **断开会话**:在screen内按`Ctrl+A`然后`D`(detach) - **重新附加会话**:`screen -r` - **强制断开会话**:`screen -D [session_name]` - **启动命令并在新screen会话中运行**:`screen -S `,如`screen -S testphp php test.php` ### 4. `screen`常用参数 - `-A`:调整所有窗口大小以适应当前终端大小 - `-d`:使指定的screen会话离线 - `-h`:设置屏幕缓冲行数 - `-m`:即使已有会话,也强制创建新的screen会话 - `-r`:恢复离线的screen会话 - `-R`:尝试恢复离线会话,失败则创建新的 - `-s`:指定新窗口使用的shell - `-S`:设置screen会话的名称 - `-v`:显示版本信息 - `-x`:恢复离线的screen会话 - `-ls` 或 `--list`:列出所有screen会话 ### 5. `screen`控制序列 在screen会话内部,可以使用以下快捷键来控制窗口: - `Ctrl+A C`:创建新窗口 - `Ctrl+A N`:切换到下一个窗口 - `Ctrl+A P`:切换到上一个窗口 - `Ctrl+A 0` 至 `9`:直接切换到指定编号的窗口 - `Ctrl+A K`:关闭当前窗口 - `Ctrl+A Z`:将当前会话放入后台 - `Ctrl+A .`:重命名当前窗口 - `Ctrl+A H`:显示帮助 - `Ctrl+A D`:detach,将当前screen会话放到后台运行 ### 6. `screen`的重要性和应用场景 `screen`的重要性在于它允许用户在不中断程序运行的情况下断开连接。这对于长时间运行的脚本、监控任务或需要保持在线状态的服务尤其有用。例如,开发人员可以启动一个数据库迁移脚本,然后detach会话,让脚本在后台继续执行。即使关闭终端或网络连接,只要服务器正常运行,脚本就会持续执行。当需要检查脚本状态时,只需重新attach会话即可。 ### 7. 示例 创建一个名为`test`的screen会话并运行PHP脚本: ```bash screen -S testphp php test.php ``` 然后按下`Ctrl+A D`将screen会话detach到后台。稍后,可以使用以下命令检查和恢复会话: ```bash screen -ls screen -r 3934 ``` 如果需要将当前的屏幕会话放入后台运行,则可以按 `Ctrl+A Z`。 ### 总结 通过学习和熟练掌握`screen`,用户能够更高效地管理和控制远程服务器上的工作流程。这对于处理长时间任务及多任务管理非常有用。
  • Windows DOSLinux集合
    优质
    本项目提供在Windows或DOS环境下模拟Linux命令行工具的功能,使用户无需安装完整的Linux系统即可使用常用的Linux命令。 使用方法:解压到本地目录后配置path,在DOS下即可使用Linux命令。Windows环境下可以执行的大多数日常使用的Linux命令包括但不限于以下这些: - .exe, grolbp.exe, regtool.exe, a2p.exe, grolj4.exe, rm.exe, - a2p5.10.0.exe, grops.exe, rmdir.exe - addftinfo.exe, grotty.exe, rmt.exe - addr2line.exe, gzip.exe, run.exe - alternatives.exe, head.exe, runcon.exe - ar.exe, hostid.exe, rxvt.exe - archiveexe, hostname.exe scp.exa - awk exe i686-pc-cygwin-gcc3.4.4 exa sedexebash exe infoexe setfaclexebase64 exe indxbibexe setmetamodeexebasename exe infokeyexe sftp-serverexebigram exe install-infoesed.exe - banner.exe id.exe seq.exebase64.exe indxbib.exe setfacl.exebash.exe infokey.exe sftp-server.exebigram.exe install-infoe sed.exe - bunzip2 exeiinstall-exermdir.exebunzip2exeiipcrmexe sha1sumexebzcat exeiipcs exe sha224sumexebzip2 exeijoin exe sha384sumexec++filt exe kill exe sha512sumexecat.exe ld.exe seq.exe - cc - 3.exe less.exeseq.execc.exe lessecho.exeshred.exechcon.exe lesskey.exeshuf.exechmodexe ln exesizeexechgrpexe link exermtexehmodeexi lkbib exe sleepexe - chownexeln exesetfaclexecksumexelogin exe ssh-addexecodeexelogname.exe ssh-agentexecryptexe man2html.exe sspeccpp - 3.exemakeinfoe shh.exe - cpp.exeman.exe sssp.execodeexemanpath.exe stat.execpexemake.exe svnadminexe - cppe xmanpath exestat execksumexelogin exesvnlookexecryptexeman2html esspexe - convexelpr exe soelimexeconvexe login exesshdexe - copy-exeln exosetfacl.exedateexemount exe shmtool.exe - dfexenmsgtoolexeshmtool.exe - diffexenc exe svndumpfilterexecdiff3 execngettextesvnlookexecdir.exe ngettext execsync.execd2uexe mkgroup eshmtool.exedfexe msgtool exe stat.exeechgrpexemkfifo exe stty.exeedlltoolexenohup exetbl.exe - dllwrapexelprn exete.texedumpeodbtexetexindex.exe - dmp3exe nc exesvndumpfilter.execmpexe mount exevim.exe - dumpexe mv esvnlookexecdte mktmpe svnversion.exeecho exe openssl exe touch.exeed2uexemkdir exe strings.excrypt-exepgawk - 3.16.exesum.exe - dddelxenmountexetouch.exeeditrights exepasswdexe tr.exe - dfdusenmkshortcut esvnadminexecdfexeodbtexefmtexepinkynexttail.execmpexe mount exeumount.exediff3exe nc exevim.exedumpexe mv esvndumpfilter.exeecrypt-exepgawk - 3.16.exesum.exe - dddelxenmountexetouch.exeeditrights exepasswdexe tr.exe - dlltool exenohup exe tbl.execmpexe mount exeumount.exediff3exe nc exevim.exedumpexe mv esvndumpfilter.exeecrypt-exepgawk - 3.16.exesum.exe 以上仅为部分命令,具体使用请根据实际需求进行配置和操作。
  • LinuxFTPSFTP解析
    优质
    本文详细解析了在Linux操作系统中使用FTP和SFTP进行文件传输的基本命令及操作方法,帮助用户掌握高效管理远程服务器文件的技术。 介绍了FTP和SFTP等常用工具,在工程文件管理与共享方面提供了帮助。
  • LinuxVim详解
    优质
    本教程深入解析了在Linux系统中使用Vim编辑器的各种命令和技巧,帮助用户掌握高效文本处理能力。 在Linux下使用Vim命令进行编辑时,会发现它包含了许多高级功能,其中包括宏功能。宏功能使得重复执行一系列操作变得非常方便,在Vim中利用这一特性可以大大提高工作效率。
  • Linux Screen详解
    优质
    《Linux Screen命令详解》介绍了Screen这款终端多路复用器的基础知识及其核心功能,包括会话管理、窗口操作等技巧,帮助用户高效地利用Shell环境。 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接并管理多个本地或远程的命令行会话,并在这些会话之间进行便捷地切换。
  • pandas.cutpandas.qcut用法
    优质
    本篇内容主要介绍Python数据分析库Pandas中的两个函数:`cut()`和`qcut()`。它们用于将连续数据离散化为不同的区间,但两者在分箱方式上有所不同,文章详细对比了两者的使用场景与适用情况。 在数据分析与数据预处理过程中,将数值数据分组或分箱是常见的操作步骤。Pandas 提供了两个非常有用的函数 `pandas.cut` 和 `pandas.qcut` 来实现这一功能。这两个函数都能将一维数组或 Series 分割成多个区间,但它们的工作方式和应用场景有所不同。 ### `pandas.cut` `pandas.cut` 主要用于创建等宽或自定义宽度的区间,适用于你知道数据分布边界或者希望平均分配到各个区间的情况。 **参数说明:** 1. **`x`**:一个一维数组或 Series,需要进行切割的数据。 2. **`bins`**:可以是整数、序列或间隔索引。如果为整数,则表示等宽区间的数量;如果是序列或间隔索引,则用于定义非均匀的区间边界。 3. **`right`**:默认值为 True,表示区间右闭左开([a, b));设置为 False 则变为左闭右开 ([a, b] )。 4. **`labels`**:自定义区间标签,长度应与区间的数量相同。 5. **`retbins`**:如果设为 True,则函数将返回区间边界。 6. **`precision`**:设置返回的区间标签的小数位数。 7. **`include_lowest`**:如果设为 True,则包含最左侧的边界。 示例: ```python import pandas as pd import numpy as np # 创建数据集 data = np.array([0.2, 1.4, 2.5, 6.2, 9.7, 2.1]) # 使用3个等宽区间切割 cuts = pd.cut(data, bins=3, labels=[low, medium, high], include_lowest=True) print(cuts) ``` ### `pandas.qcut` `pandas.qcut` 则是根据数据的分位数来创建区间,适用于你想要基于自然分布进行分割的情况。 **参数说明:** 1. **`x`**:需要切割的数据。 2. **`q`**:整数或由分位数组成的列表,表示要划分的分位数数量或者具体的分位点。 3. **`labels`**:自定义区间标签,长度应与区间的数量相同。 4. **`retbins`**:如果设为 True,则函数将返回区间边界。 5. **`precision`**:设置返回的区间标签的小数位数。 6. **`duplicates`**:处理重复边界的策略(如 raise 或 drop)。 示例: ```python # 使用四分位数切割 quartiles = pd.qcut(data, q=4, labels=[very low, low, medium, high]) print(quartiles) ``` ### 区别 - `pandas.cut` 创建的是等宽区间,而 `pandas.qcut` 是基于分位数的不等宽度区间。 - 在 `pandas.cut` 中,参数 bins 可以是整数或序列;而在 `pandas.qcut` 中 q 参数需要为分位数值。 - 对于重复的边界值,在使用 `pandas.cut` 时默认不会处理,而可以设置 pandas.qcut 的 duplicates 参数来处理。 ### 错误处理 在使用 `pandas.qcut` 期间,如果区间边界的值不唯一,则会抛出 Bin edges must be unique 的错误。可以通过将参数 duplicates 设置为 drop 来解决这个问题。 ### 应用场景 当数据分布均匀或你希望控制每个区间的宽度时,`pandas.cut` 更加适用(如年龄分段、分数等级划分等)。而 `pandas.qcut` 则更适合于探索性分析或者在建模中对连续变量进行离散化处理。 ### 总结 无论是 `pandas.cut` 还是 `pandas.qcut`,都是 Pandas 提供的强大数据分箱工具。理解它们的区别和使用场景可以帮助我们更好地进行数据预处理与分析。选择哪个函数取决于你对数据分布的理解以及期望的分箱效果,在实际应用中根据具体情况做出合适的选择可以更有效地揭示数据结构并支持后续统计或机器学习任务。
  • LinuxDB2常用
    优质
    本教程介绍了在Linux环境下操作IBM DB2数据库时常用的命令行工具和管理指令,帮助用户掌握基本的安装、配置及维护技巧。 在Linux环境下使用DB2数据库时,掌握一些常用的操作命令是非常有帮助的。这些命令可以让你快速定位并解决问题,提高工作效率。