Linux nohup命令用法详解

本文详细介绍了nohup命令的功能及使用方法,包括其语法格式、参数说明以及如何在后台运行命令并重定向输出。此外,还提供了具体的示例代码帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值