`

nohup 与 & 的区别及用法

 
阅读更多

nohup
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用n o h u p命令。该命令可以在你退出帐户之后继续运行相应的进程。n o h u p就是不挂起的意思( no hang up)。 在Linux/Unix下,只有守护进程在脱离终端后能继续执行,而普通进程在关闭终端时会因收到SIGHUP信号(挂起信号)而退出。因此,为了长时间运行普通进程,需要使用nohup命令。


该命令的一般形式为:

代码:
nohup command &

使用nohup命令提交作业 
如果使用n o h u p命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,nohup.out文件缺 省写在当前目录下,如果在该目录下无写权限,则试图写到$HOME/nohup.out中,如果仍然失败,整个命令执行失败。

另外指定了输出文件:

代码:
nohup command > myout.file 2>&1


在上面的例子中,输出被重定向到m y o u t . f i l e文件中。 
让我们来看一个例子,验证一下在退出帐户后相应的作业是否能够继续运行。我们先提交一个名为p s 1的日志清除进程: 

代码:
$nobup ps1 &


现在退出该s h e l l,再重新登录,然后执行下面的命令: 

代码:
$ps x |grep ps1


我们看到,该脚本还在运行。如果系统不支持ps x命令,使用ps -ef|grep ps1命令。
5.一次提交几个作业 
如果希望一次提交几个命令,最好能够把它们写入到一个s h e l l脚本文件中,并用n o h u p命令来执行它。 
例如,下面的所有命令都用管道符号连接在一起;我们可以把这些命令存入一个文件,并使该文件可执行。 

代码:
cat /home/accounts/qrt_0499 | /apps/bin/trials.awk | sort | lp 
$cat > quarterend 
cat /home/accounts/qtr_0499 | /apps/bin/trials.awk | sort | lp 
<ctrl-D>


现在让它可执行: 

代码:
$ chmod 744 quarterend


我们还将该脚本的所有输出都重定向到一个名为q t r. o u t的文件中。 

代码:

nobup ./quarterend > qtr.out 2>

 

nohup与&的区别:
nohup只是让命令忽略SIGHUP命令而已;&则让命令在后台运行,至于该命令是否能在脱离终端后继续执行则要看进程是否是守护进程,如果不是,则需要nohup来帮忙。

这里是重点。让我在工作上失误


Tips:使用 jobs 查看任务,使用 fg %n 使进程在前台执行。
另外有两个常用的ftp工具ncftpget和ncftpput,可以实现后台的ftp上传和下载,这样就可以利用这些命令在后台上传和下载文件了。

后台运行作业的: 
有时我们必须要对大文件进行大量更改,或执行一些复杂的查找,这些工作最好能够在系统负荷较低时执行。 
创建一个定时清理日志文件或完成其他特殊工作的脚本,这样只要提交一次,就可以每天晚上运行,而且无需你干预,只要看看相应的脚本日志就可以了。c r o n和其他工具可以使系统管理任务变得更轻松。

分享到:
评论

相关推荐

    nohup和&的区别

    ### nohup与&在Linux中的使用区别及最佳实践 #### 概述 在Linux环境中,用户经常会遇到需要让程序在后台持续运行的情况。对于这种需求,Linux提供了两种常见的方法:`nohup`命令和在命令末尾添加`&`符号。这两种...

    Linux中nohup与&的用法和区别详解

    4. `nohup`与`&`一起使用时,程序既不受SIGHUP影响,也不受SIGINT影响,需要通过其他信号(如SIGTERM或SIGKILL)来终止。 理解并掌握这两个命令的用法对于Linux系统的管理和自动化任务的执行至关重要。希望本文的...

    Linux nohup实现后台运行程序及查看(nohup与&)

    当使用 `nohup` 时,程序的标准输出和标准错误会被重定向到一个名为 `nohup.out` 的文件中,除非另有指定。这有助于在程序运行时记录日志,尤其是在无人值守的情况下。 5. **停止后台运行的程序** 如果想要停止由...

    nohup使用方法LINUX|CENTOS

    nohup 命令使用方法详解 nohup 命令是一个常用于 Linux 和 CentOS 操作系统中的命令,它可以使得程序在后台运行,不受终端的影响。下面是 nohup 命令的使用方法和参数解释: nohup 命令的基本语法 nohup 命令的...

    详解linux下nohup日志输出过大问题解决方案

    首先,理解`nohup`命令的基本用法至关重要。`nohup`命令的基本语法是`nohup [command] [args] [&]`。运行这个命令时,系统会忽略所有的挂断(HUP)信号,使得即使用户注销或关闭终端,命令也能继续执行。如果不指定...

    linux nohup及tail-f用法

    下面将详细介绍这两个命令的使用方法和应用场景。 **nohup命令详解** `nohup`全称是"no hang up",它的主要作用是使指定的命令在用户退出终端后继续运行。通常,当我们通过终端启动一个进程,一旦终端被关闭,这个...

    linux下nohup日志输出过大问题的解决方法

    Linux 下 nohup 日志输出过大问题的解决方法 Linux 是一个功能强大且广泛使用的操作系统,nohup ...通过使用上述方法,我们可以解决 nohup 日志输出过大问题,维护日志文件,释放磁盘空间,并提高系统的性能和稳定性。

    nohup命令详解.txt

    ### nohup命令详解:确保进程...通过以上详尽的解析,我们可以看到`nohup`命令在Linux系统中扮演着重要的角色,尤其对于那些需要长期不间断运行的任务来说,它提供了一种简单而有效的方法来确保进程的连续性和稳定性。

    Linux-nohup日志拆分

    本文将详细介绍如何在Linux环境下设置`nohup`日志的定时拆分以及清理,并提供具体的脚本和配置方法。 #### 一、Crontab简介 在Linux系统中,`crontab`是一种用于调度周期性执行任务的工具。通过编辑用户的`crontab...

    linux后台执行命令&和nohup的具体使用方法

    使用 `nohup` 时,确保使用 `exit` 正常退出登录,以确保命令持续在后台运行。如果仅使用 `Ctrl + Z` 暂停命令并退出,后台进程可能会在账户退出时停止。 `Ctrl + Z` 可以将一个前台任务挂起,将其放到后台,并且...

    Linux nohup命令原理及实例解析

    下面我们将详细探讨`nohup`命令的原理、使用方法以及一些实例。 ### 命令原理 `nohup`是`no hang up`的缩写,它的核心功能是使进程忽略挂起(SIGHUP)信号。在Linux系统中,当用户注销或者断开连接时,系统会发送...

    通过python 执行 nohup 不生效的解决

    为了解决这个问题,我们需要保持通道打开,直到`nohup`命令执行完毕,可以使用`invoke_shell()`方法来实现: ```python ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ...

    利用nohup来开启python文件的方法

    所以需要使用利用nohup来开启python文件: nohup python webSocketFlashServer_inner.py –fork 因为nohup是不中断的意思,也就是ssh终端关闭以后,不会自动停止。 如果出现appending output to nohup out的情况,...

    浅析Linux中使用nohup及screen运行后台任务的示例和区别

    本文主要探讨了两种常用的方法:`nohup`和`screen`,它们都能帮助用户在关闭终端后继续运行命令或脚本。 首先,让我们来看`nohup`命令。`nohup`是“no hang up”的缩写,它使得命令在后台运行并且忽略挂断(SIGHUP...

    Linux 运行jar包的几种方式

    第四种方法,结合标准输出和错误输出重定向,如`nohup java -jar spring-boot-demo.jar &gt; springboot.log 2&gt;&1 &`,这将把程序的标准输出(1)和标准错误(2)都重定向到`springboot.log`文件。`2&gt;&1`表示将标准错误...

    python nohup 实现远程运行不宕机操作

    解决这个问题的方法是在执行完`nohup`命令后,再执行一次`exit`,这将确保SSH连接完全断开,而程序仍在后台运行。 总结来说,`nohup`是Python远程运行不宕机操作的关键工具,它使得开发者可以安心离开,而不必担心...

Global site tag (gtag.js) - Google Analytics