当前位置:   article > 正文

Linux nohup命令用法详解_nohup.out在哪个目录

nohup.out在哪个目录

nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

语法格式:

 nohup Command [ Arg … ] [ & ]

参数说明:

  • Command:要执行的命令。
  • Arg:一些参数,可以指定输出文件。
  • &:让命令在后台执行,终端退出后命令仍旧执行。

 示例命令代码:

以下命令在后台执行 查看当前路径下的文件内容:

nohup cat text.txt &

在终端如果看到以下输出说明运行成功:

nohup: ignoring input and appending output to 'nohup.out'

这时可以看到当前文件夹下生成了 nohup.out 文件。

如果要停止运行上面执行的命令,查找到 nohup 运行脚本到 PID,然后使用 kill 命令来删除:

ps -aux | grep text.txt

参数说明:

  • a : 显示所有程序
  • u : 以用户为主的格式来显示
  • x : 显示所有程序,不区分终端机

另外也可以使用 ps -def | grep text.txt 命令来查找。

找到 PID 后,使用 kill PID 来删除。

kill -9  进程号PID

在后台执行 查看当前路径下的文件内容,并重定向输入到 text.log 文件:

nohup cat text.txt > text.log 2>&1 &

2>&1 解释:

将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 text.log 文件中。

  • 0 – stdin (standard input,标准输入)
  • 1 – stdout (standard output,标准输出)
  • 2 – stderr (standard error,标准错误输出)

有时候用nohup执行python程序时,print()无法输出到日志中。如下命令:

nohup python test.py > nohup.out 2>&1 &

有时候发现nohup.out中显示不出来python程序中print的东西。这是因为python的输出有缓冲,导致nohup.out并不能够马上看到输出。

python 有个-u参数,使得python不启用缓冲。改为下述命令便可以啦!

nohup python -u test.py > nohup.out 2>&1 &
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/40289
推荐阅读
相关标签
  

闽ICP备14008679号