linux nohup命令使用教程

九路
• 阅读 376

nohup 的作用可以将程序以忽略挂起信号(SIGHUP)的方式运行。常见的用法是和& 命令一同使用,将命令放置到后台运行,即使终端挂掉,进程会忽略挂起信号,继续运行。

平时我们直接执行命令,只是在终端中运行,如果关闭了终端,我们的命令也就结束了。尤其是服务,需要在后台不能关闭的,如果在终端运行,那就只能一直开关终端。如果想关闭终端,服务还是在后台一直运行,这时候,linux下就可以用nohup命令了。

将程序放到后台运行,一般有两种方式:

(1)command &:后台运行,关掉终端会停止运行。

(2)nohup command & :后台运行,关掉终端也会继续运行。

注意:

(1)如果使用nohup执行程序未显示进行标准输出重定向,则标准输出默认重定向当前工作目录的 nohup.out 文件中。如果当前工作目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开用于追加,那么 command 参数指定的命令不可调用。

(2)如果标准错误未显示重定向,那么标准错误默认重定向到与标准输出相同的文件。

常用示例

  • 使用nohup 命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件。 nohup ./test.sh &
  • 标准输出与标准错误输出重定向。 nohup ./test.sh > test.log 2>&1 &
  • 指定输出文件, 输出被重定向到output.txt文件中 nohup bash a.sh &> error.txt

注意:

  • 2>&1 标识标准错误输出重定向等同于标准输出重定向,即标准错误输出也重定向到文件 test.log

  • & 命令是命令放在后台执行,需要放在命令的最后面

点赞
收藏
评论区
推荐文章
芝士年糕 芝士年糕
2年前
如何在 Linux 命令行中终止进程?
如果你想在linux上停止某个进程,你会怎么操作?如果命令/进程在前台运行,您可以使用CtrlC终端快捷方式,但是,如果进程不可见(在后台运行),您可以使用专用命令“杀死它”。“终止进程”是指在执行过程中停止进程,如果您知道进程ID(PID),则可以使用kill命令,如下所示:kill在上面的语法中,signal指的是要发送终止的终止信号,
Stella981 Stella981
3年前
Python 实现程序自动调度
利用Python实现在文件目录遍历,依次将当前文件夹下子文件夹中的程序编译并自动运行,每一个子程序运行结束后,发送运行结束的提醒到指定邮箱。想实现Python文件的后台运行,命令为:nohuppythonumyscript.pyparams1nohup.out2&1&其中参数u为使得python不启用缓冲,可以及时
Stella981 Stella981
3年前
Linux后台运行进程 node screen
1\.后台运行的例子nohupcommand/dev/null2&1&解释:nohup:nohangup,不挂断地运行命令。只用nohup命令,关闭终端,进程还存在。若在终端中直接使用Ctrlc,则会关闭进程。command:command是用户输入的命
Stella981 Stella981
3年前
Linux nohup命令和后台运行符&的使用
文章目录1.nohup的使用2.后台运行符&的使用3.总结1.nohup的使用作用:当你在终端执行命令脚本,当脚本没有执行完,如果你关闭终端,那么跟随这个终端有关的进程都会退出执行,nohup命令的作用就是让使用此命令的脚本可以脱离终端继续执行,不受终端退出的影响。
Stella981 Stella981
3年前
Linux学习20
前言django在linux上运行,一般在xshell远程连接后,是通过pythonmanage.pyrunserver0.0.0.0:8000启动服务。但是这样有个弊端,窗口关闭服务就停止了。nohup可以启动的时候挂后台运行nohup后台运行cd到django的manage.py目录,启动之前先杀掉进程
Stella981 Stella981
3年前
Linux 进程后台运行的方法
当用户注销(logout)或者网络断开时,终端会收到HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略HUP信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。nohupnohup的用途就是让提交的命令忽略hangup信号。nohup的使用是十分方便的,只需在要处理
Stella981 Stella981
3年前
Linux下部署 jar包
1、windows和linux执行jar命令是一样的,javajarxxx.jar2、使用nohup命令将jar程序设置成后台运行,运行日志输出到nohup.out,关闭窗口无影响nohupjavajarxxx.jarnohup.out2&1&!(https://oscimg.oschina.net/oscnet/
Stella981 Stella981
3年前
Linux中标准输出和标准错误的重导向
如果一个命令需要长时间在服务器上运行,那么很多时候会用到nohup命令,这时即便远程登录ssh中断了与服务器的联系,那么在服务器上运行的命令也不会因此而被迫停止。通常情况下,nohup与&连用,&的意思是将该命令放在后台执行。如下:nohupexample.sh&将exmaple.sh通过&放在服务器后台运行,nohup确保了即便当前
Stella981 Stella981
3年前
Nohup源码分析
  在我们日常工作中,总是不可避免的需要将进程放置后台运行,于是我们就会使用&或者nohup...&,我们有时会疑虑,其实为什么多余添加一个nohup,于是就是谷歌/百度,然后就会得出一个答案:nohup能够避免在终端断开时,后台进程被杀掉.但为什么nohup能够实现这个?我们先来看下bash对&和nohup的解析吧:
Stella981 Stella981
3年前
Linux常用命令二
\TOC\Linux常用命令二之前那个太多了,以后新收集的就记在这里.进程挂起与恢复关键命令:CTRLZ将进程挂起到后台(暂停而已)jobs命令显示当前暂停的进程(可以看到程序的编号)bg%N命令使第N个任务在后台运行(%前有空格)