linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’[通俗易懂]

linux 中的 nohup 命令(设置后台进程): nohup: ignoring input and appending output to ‘nohup.out’[通俗易懂]一、Linux下使用nohupUnix/Linux下一般比如想让某个程序在后台运行,很多都是使用&在程序结尾来让程序自动运行。比如我们要运行weblogic在后台:./startWebLogic.sh&但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用&结尾。但是如果终端关闭,那么程序也…

大家好,又见面了,我是你们的朋友全栈君。

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

 

一、Linux 下使用 nohup

Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。

比如我们要运行weblogic在后台:
./startWebLogic.sh &

但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 &结尾。

但是如果终端关闭,那么程序也会被关闭。

但是为了能够后台运行,那么我们就可以使用nohup这个命令。

比如我们有个startWebLogic.sh需要在后台运行,那么就使用nohup:

nohup ./startWebLogic.sh &

提示:

[~]$ appending output to nohup.out

嗯,证明运行成功,同时把程序运行的输出信息放到当前目录的 nohup.out 文件中去。

nohup 命令

用途:LINUX命令用法,不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。

在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

nohup: ignoring input and appending output to `nohup.out’  忽略输入输出,将信息化信息记录到nohup.out文件中。

 

二、使用Linux重定向解决nohup.out无写权限问题

■场景

执行nohup命令的时候,经常会出现下面这种没有写入权限的错误。

nohup: ignoring input and appending output to `nohup.out’
nohup: failed to run command `/etc/nginx_check.sh’: Permission denied

 

■linux重定向:

0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。

在一般使用时,默认的是标准输出,既1。当我们需要特殊用途时,可以使用其他标号。

例如,将某个程序的错误信息输出到log文件中:./program 2>log。

这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。

 

另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。

这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:

# ls 1>/dev/null 2>/dev/null

还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:

# ls >/dev/null 2>&1

注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,

然后将标准错误重定向到标准输出。

由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄。

 

■关于nohup

在使用nohup命令的时候,经常由于输出nohup.out的路径没有写入权限,而无法使用nohup。

这是可以使用Linux重定向的方法,将nohup.out重定向至一个有写入权限的路径,或者直接扔到/dev/null中。

nohup ./program >/dev/null 2>/dev/null &

或者

nohup ./program >/dev/null 2>&1 &

 

三、使用nohup设置后台进程

引言: 有时候需要在Linux上设置一个后台进程,但是当你关闭terminal之时,它会被系统kill掉,那该如何来实现其后台进程能一直运行下去呢?

使用方式:

nohup command-with-options &

当在屏幕上敲击上述命令之后,屏幕上会出现如下信息:

$ nohup: ignoring input and appending output to `nohup.out’

敲击回车,就退出了nohup.out当前的界面,进入正常的命令行。

输出日志信息:

接下来的输出的日志信息,将输出到nohup.log.即将屏幕上输出的日志信息直接输出到nohup.log文件。

后台进程的标志符:

如果一个命令只使用&来标识,则表示其在当前Session中,运行在后台。如果当前Session关闭或者当前的terminal工具关闭,则其附属的进程将会关闭。

正常运行的后台进程都是需要nohup与&,两者并行使用的,方可保证其在后台正常运行。

 

 

 

转自:https://blog.csdn.net/blueheart20/article/details/78226066

           https://www.cnblogs.com/quchunhui/p/5582371.html

           http://aniyo.iteye.com/blog/1496442

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138368.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • awk基本用法简介

    awk基本用法简介之前说过sed,今天来说awk,它也是一个文本处理器,是linux下的一个命令,比sed更强大。搞linux开发,尤其是后台开发,这个命令几乎必须要用到。awk这三个字母分别代表其三位作者的名字,而不是某个/某些有意义单词的缩写。还是那句话,以实践操作为荣,以只看不练为耻。当然,理解awk的原理是必须的:读入有’\n’换行符分割的一条记录,将记录按指定的域分隔符划分域,$0表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是空格键或tab键。

    2022年7月11日
    13
  • 可迭代对象 python_列表是可迭代对象吗

    可迭代对象 python_列表是可迭代对象吗引出问题:​如下面所示,存在一个类,并且产生了一个对象,现在想用for循环实现对象的迭代,结果报错了点击(此处)折叠或打开– coding: utf-8 –“””演示一个类是不可以迭代的结果存在报错信息 说明 A对象不是一个可以迭代的对象for i in A:TypeError: ‘Students’ object is not iterable“””class Students():def init(self):self.names = list()def add(self,

    2022年8月8日
    4
  • oracle修改用户密码的方法「建议收藏」

    oracle修改用户密码的方法「建议收藏」修改oracle用户的密码有以下方法:普通用户(1)通过alteruser语法来进行修改,这也是最常见的方式:(2)第二种方式,是通过password命令来…

    2022年7月28日
    4
  • phpstrom激活码(JetBrains全家桶)

    (phpstrom激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月30日
    127
  • 服务器重启项目引发的nginx 502 Bad Gateway解决

    服务器重启项目引发的nginx 502 Bad Gateway解决一、问题起因:ssh登录远程服务器重启项目(第一次),未等tomcat启动完成,直接访问项目的对应后台管理系统网站,导致网页一直加载不出来,心急又去重复启动项目(第二次),再次访问网页报错:502BadGatewaynginx。二、解决思路:…这里饶了很多弯路。前面几步是没有解决的错误思路,想要看最终解决,直接跳过,去查看最后的总结…1.首先想到去查看nginx日志,…

    2022年6月24日
    94
  • pytest的使用_新代子程序重复调用

    pytest的使用_新代子程序重复调用Pytest执行用例规则Pytest在命令行中支持多种方式来运行和选择测试用例1.对某个目录下所有的用例pytest2.对模块中进行测试pytesttest_mod.py3.对文件夹进行

    2022年7月31日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号