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中利用这一特性可以大大提高工作效率。
  • LinuxDB2常用
    优质
    本教程介绍了在Linux环境下操作IBM DB2数据库时常用的命令行工具和管理指令,帮助用户掌握基本的安装、配置及维护技巧。 在Linux环境下使用DB2数据库时,掌握一些常用的操作命令是非常有帮助的。这些命令可以让你快速定位并解决问题,提高工作效率。
  • LinuxOracle常用
    优质
    本简介聚焦于在Linux操作系统下管理Oracle数据库时常用的命令行工具和操作技巧,涵盖安装、配置及日常维护等方面。 在Linux环境下使用Oracle数据库的常用命令包括启动数据库、启动监听器以及创建用户和表空间等操作。这些命令对于日常管理和维护Oracle数据库非常重要。例如,可以通过执行`sqlplus / as sysdba`来以SYSDBA身份登录,并通过输入如`startup`这样的命令来启动数据库;为了启用监听服务,则需要运行像`lsnrctl start`之类的指令;创建新用户则可以使用SQL语句如`CREATE USER username IDENTIFIED BY password;`,而建立表空间的步骤通常涉及执行类似`CREATE TABLESPACE tablespace_name DATAFILE /path/to/datafile SIZE 50M;`这样的命令。
  • Linux Screen详解
    优质
    《Linux Screen命令详解》介绍了Screen这款终端多路复用器的基础知识及其核心功能,包括会话管理、窗口操作等技巧,帮助用户高效地利用Shell环境。 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接并管理多个本地或远程的命令行会话,并在这些会话之间进行便捷地切换。