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

解决nohup命令报错:ignoring input and appending output to ‘nohup.out‘的3种实用方法 本文详细解析了Linux中nohup命令报错'ignoring input and appending output to nohup.out'的三种实用解决方法,包括自定义输出文件路径、完全丢弃输出内容以及结合tmux或screen使用。帮助开发者理解nohup的工作原理,优化Java应用部署流程,提升服务器管理效率。 阅读详情

■场景

执行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 &



另外关于2>&1&

我们在Linux下经常会碰到nohup command>/dev/null 2>&1 &这样形式的命令。首先我们把这条命令大概分解下首先就是一个nohup表示当前用户和系统的回话下的进城忽略响应HUP消息。&是把该命令以后台的job的形式运行。那么就剩下command>/dev/null 2>&1,command>/dev/null较好理解,/dev/null表示一个空设备,就是说吧command的执行结果重定向到空设备中,说白了就是不显示任何信息。那么2>&1又是什么含义?

2>&1

几个基本符号及其含义

  • /dev/null 表示空设备文件
  • 0 表示stdin标准输入
  • 1 表示stdout标准输出
  • 2 表示stderr标准错误

从command>/dev/null说起

其实这条命令是一个缩写版,对于一个重定向命令,肯定是a > b这种形式,那么command > /dev/null难道是command充当a的角色,/dev/null充当b的角色。这样看起来比较合理,其实一条命令肯定是充当不了a,肯定是command执行产生的输出来充当a,其实就是标准输出stdout。所以command > /dev/null相当于执行了command 1 > /dev/null。执行command产生了标准输出stdout(用1表示),重定向到/dev/null的设备文件中。

说说2>&1

通过上面command > /dev/null等价于command 1 > /dev/null,那么对于2>&1也就好理解了,2就是标准错误,1是标准输出,那么这条命令不就是相当于把标准错误重定向到标准输出么。等等是&1而不是1,这里&是什么?这里&相当于等效于标准输出。这里有点不好理解,先看下面。

command>a 2>a 与 command>a 2>&1的区别

通过上面的分析,对于command>a 2>&1这条命令,等价于command 1>a 2>&1可以理解为执行command产生的标准输入重定向到文件a中,标准错误也重定向到文件a中。那么是否就说command 1>a 2>&1等价于command 1>a 2>a呢。其实不是,command 1>a 2>&1与command 1>a 2>a还是有区别的,区别就在于前者只打开一次文件a,后者会打开文件两次,并导致stdout被stderr覆盖。&1的含义就可以理解为用标准输出的引用,引用的就是重定向标准输出产生打开的a。从IO效率上来讲,command 1>a 2>&1比command 1>a 2>a的效率更高。

举个栗子

来个shell

//test.sh
#!/bin/sh
t
date

chmod +x test.sh为test.sh增加执行权限。这里我们弄了两条命令,其中t指令并不存在,执行会报错,会输出到stderr。date能正常执行,执行会输出当前时间,会输出到stdout。

执行./test.sh > res1.log结果为

我们发现stderr并没有被重定向到res1.log中,stderr被打印到了屏幕上。这也进一步证明了上面说的./test.sh > res1.log等价于./test.sh 1>res1.log

执行./test.sh>res2.log 2>&1结果为

这次我们发现stdout和stderr都被重定向到了res2.log中了。上面我们未对stderr也就是2说明如何输出,stderr就输出到了屏 幕上,这里我们不仅对stdout进行说明,重定向到res2.log中,对标准错误也进行了说明,让其重定向到res2.log的引用即 res2.log的文件描述符中。

再思考一下

为何2>&1要写在command>1的后面,直接用2可以么。比如ls 2>a。其实这种用法也是可以的,ls命令列出当前的目录,用stdout(1)表示,由于这个时候没有stderr(2),这个时候执行ls 2>a也会正常产生一个a的文件,但是a的文件中是空的,因为这时候执行ls并没有产生stderr(2)。


别再被‘nohup: ignoring input...‘吓到!这其实是Linux后台运行程序的正常提示 本文详细解释了Linux中nohup命令的工作原理,特别是'nohup: ignoring input...'提示的含义,帮助用户理解这并非错误而是正常状态提示。文章涵盖了nohup的基础用法、输出重定向技巧、进程管理方法,并对比了nohup与tmux/screen的优缺点,为Linux用户提供了实用的后台任务处理指南。 阅读详情

相关推荐

谷歌(Google) Pixel 8/9 Pro(xl)如何获取 root 权限

谷歌(Google)Pixel8/9Pro(xl)等系列手机破解后,会在你的init_boot.img同路径生成一个magisk_patched.img,把这个文件拷贝到adb目录下,稍后还得把它刷回手机,这样手机才能获得Root权限,因为安卓14、15以后的内核结构调整,和Pixel7及以下的6、5、4、3、2等系列手机破解稍微不一致。因为ROOT权限的获取,需要使用ROM中的内核文件,个人强烈建议在官网下载ROM,直接刷最新版,其他地方的ROM如果没有校验码,请自行斟酌是否使用。

bugsycrack的博客 3486

nohup: ignoring input and appending output to ‘nohup.out’

在执行linux命令的时候出现了下面错误: nohup: ignoring input and appending output to ‘nohup.out’ 或者: nohup: failed to run command `xxx.sh’: Permission denied 一般我们自己写的脚本,想利用nohup命令让脚本程序自己运行,但是nohup他必然会产生日志文件,所以这需要我们将日志...

亡月杂货铺 8万+

谐振电路原理与应用场景全解析

本文全面解析了谐振电路的原理、类型及其核心应用。详细阐述了串联谐振与并联谐振的工作特性,并重点介绍了其在无线通信调谐、音频处理分频以及电力系统滤波与无功补偿等关键场景中的实际作用。通过公式推导与实例分析,帮助读者深入理解LC谐振的选频与能量交换机制。

t1u2v的博客 839

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

这是可以使用Linux重定向的方法,将nohup.out重定向至一个有写入权限的路径,或者直接扔到/dev/null中。接下来的输出的日志信息,将输出到nohup.log.即将屏幕上输出的日志信息直接输出到nohup.log文件。由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null,于是一切静悄悄。注意:此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,在一般使用时,默认的是标准输出,既1。当我们需要特殊用途时,可以使用其他标号。

unber的博客 9338

NLP实践——利用自己的语料进行Mask Language Model预训练

#!/usr/bin/env python # coding: utf-8 # In[1]: import os import json import copy from tqdm.notebook import tqdm import torch from torch.optim import AdamW from torch.utils.data import DataLoader, Dataset from transformers import BertForMaskedLM, BertTo

weixin_44826203的博客 1万+

AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code,2025年开发者该如何选择?

2025年AI编程工具市场已形成四大主力阵营:Cursor(AI原生IDE)、GitHub Copilot(行业标准)、Trae(中国免费方案)和Claude Code(终端交互)。核心差异体现在技术能力(代码生成准确率85%-95%)、智能体协作程度和上下文处理能力(8K-200K tokens)。用户体验方面,Trae对中文支持最佳且免费,Copilot企业集成强,Cursor平衡易用与功能,Claude Code适合高阶开发者。实际测试显示,不同工具在原型开发、算法实现等场景各有优势

fudaihb的博客 6496

Unix/Linux程序后台运行+输出重定向

文章目录nohup 和 &使用Linux重定向解决nohup.out无写权限问题丢弃输出(/dev/null)查看后台程序 nohup 和 & Unix/Linux下想让某个程序在后台运行,可以使用 & 在程序结尾来让程序在后台自动运行。 ./test.sh & 但是如果终端关闭,那么程序也会被关闭。 但是为了能够后台运行,那么我们就可以使用nohup这个命令。 nohup ./test.sh & nohup 命令 用途:LINUX命令用法,不挂断地运行命令。 语

天下月色共三分的博客 854

图神经网络实战(21)——图神经网络的可解释性

在本节中,我们探讨了应用于图神经网络 (Graph Neural Networks, GNN) 的可解释性人工智能 (Explainable Artificial Intelligence, XAI) 技术。可解释性是许多领域的关键要素,可以帮助我们建立更好的模型。我们介绍了不同的局部解释技术,并重点讨论了 GNNExplainer (基于扰动的方法),在图分类任务中应用 GNNExplainer。

盼小辉丶的博客 9535

nohup 后台启动程序,并输出到指定日志

1.启动程序并输入到指定日志 nohup python manage.py runserver 0.0.0.0:9090 > /data/zyj/xadstat/xadstat.log 2&>1 &或者 nohup python manage.py runserver 0.0.0.0:800 >> run.log 2>&1 & ...

qq_39666711的博客 113

模型预测控制(MPC)算法介绍

模型预测控制(Model Predictive Control,MPC)是一种先进的控制策略,广泛应用于工业过程控制、机器人控制、电力系统等领域。它基于系统的模型,通过滚动优化来预测系统未来的行为,并据此确定当前的最优控制输入。

AI的内部世界的博客 7171

在 Zynq 7010 上运行 VxWorks 7.0 的详细流程【持续更新】

本文介绍了在Zynq 7010开发板上运行VxWorks 7.0的完整流程。主要包括:1)使用Vivado创建硬件设计,配置Zynq模块并生成比特流文件;2)通过Workbench 4创建VxWorks工程,配置启动参数并生成镜像;3)下载运行步骤。此外还讲解了使用Workbench 4开发VSB和VIP工程的方法,包括工程创建、配置和调试流程。文中提供了关键操作截图和注意事项,为开发者提供了完整的Zynq 7010平台VxWorks开发解决方案。

weixin_45397344的博客 1223

使用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分别表示标准输入、标准输出...

wyqwilliam的博客 2137

Android 14.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

在14.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析实现这个功能

安卓兼职framework和app工程师的博客 1311

nohup 命令(设置后台进程): appending output to ‘nohup.out’ 问题

一、Linux 下使用 nohup Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。 比如我们要运行weblogic在后台:./startWebLogic.sh & 但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 &结尾。 但是如果终端关闭,那么程序也会...

weixin_34138139的博客 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

nohup,linux后台挂起

一、Linux 下使用 nohup Unix/Linux下一般比如想让某个程序在后台运行,很多都是使用 & 在程序结尾来让程序自动运行。 比如我们要运行weblogic在后台: ./startWebLogic.sh & 但是加入我们很多程序并不象weblogic一样做成守护进程,可能我们的程序只是普通程序而已,一般这种程序使用 &结尾。 但是如果终端关闭,那么程序也会被关闭。 但是为了能够后台运行,那么我们就可以使用nohup这个命令。 比如我们有个startWebLogi

飞火龙在天的博客 6247

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Linux部署项目jar包遇到的问题——nohup命令

今天部署项目因为要后台运行,就是将Xshell命令窗口关闭之后项目仍能正常运行,因此需要使用 “nohup java -jar XXX.jar”,而不是“java -jar XXX.jar”。 但是使用nohup命令有可能会出现: nohup: ignoring input and appending output to ‘nohup.out 原因是nohup命令对nohup.out没有写入权限 解决办法: 使用Linux重定向解决nohup.out无写权限问题使用Linux重定向解决nohup.ou

weixin_44133099的博客 2336

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Linux系列】如何使用 nohup 命令在后台运行脚本

nohup是一个命令行工具,用于防止命令因用户注销或终端关闭而被挂起。其名称来源于 “no hang up”,即不挂断。在 Unix 系统中,当用户注销或关闭终端时,会向正在运行的进程发送一个挂断信号(SIGHUP),导致进程终止。nohup命令的作用就是让指定的命令忽略这个挂断信号,从而继续运行。

优快云站内信: https://i.youkuaiyun.com/#/msg/chat/qyj19920704 2万+

Linux 重定向 screen nohup &

重定向分为输入重定向与输出重定向。所谓的输入重定向即输入不从键盘读入,而是从文件输入或其它。 所谓的输出重定向即不输出到终端上,而是输出到文件中去或其它。 ""<"表示输入重定向运算符 $ wc composer.json 86 159 2526 composer.json > 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理...

hudeyong926的专栏 1036
上一篇: JVM默认参数记录
下一篇: RocketMQ最佳实践
琅琊山二当家
博客等级 码龄18年 447粉丝 322原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值