linux nohup /dev/null,nohup及/dev/null使用

本文详细介绍了Linux Shell环境中/dev/null的用途及如何使用nohup命令实现后台运行程序。通过具体实例展示了如何利用重定向来禁止标准输出、标准错误输出,并解释了>/dev/null 2>&1的含义。

1、nohup    ----后台执行,执行记录默认输出到当前目录下的nohup.out文件

nohup find /etc -name passwd

2、/dev/null介绍

把/dev/null看作"黑洞",它相当于一个只写文件;所有写入它的内容都会丢弃. 而无法它那儿读取内容;

2、/dev/null用途

a、禁止标准输出.

cat $filename >/dev/null            ---文件内容丢失,而不会输出到标准输出

b、禁止标准错误

rm $badname 2>/dev/null          ---错误信息[标准错误]就被丢弃

c、禁止标准输出和标准错误输出

cat $filename 2>/dev/null >/dev/null        ---如果"$filename"不存在,将不会有任何错误信息提示;如果"$filename"存在, 文件的内容不会打印到标准输出.因此, 上面的代码根本不会输出任何信息.

Linux命令:nohup、df、du与/dev/null

早上开始工作时发现服务器挂掉了,重启TongWeb时有报错: 上面的红框圈错了,第一个红框的下一行: java.io.IOException: No Space left on device 我们用d ...

shell中>/dev/null 2>&1

本文转自http://www.kissyu.org/ 背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬 ...

linux下详解shell中>/dev/null 2>&1

前言 相信大家经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,直到上周我将这段命令不小心写成了2>& ...

[转帖]shell 中的>/dev/null 2>&1 是什么鬼?

shell 中的>/dev/null 2>&1 是什么鬼? http://blog.jobbole.com/109355/ 背景 我们经常能在shell脚本中发现>/dev/ ...

(转)详解shell中>/dev/null 2>&1到底是什么

<think>好的,用户想了解关于在Linux使用nohup启动程序并将输出重定向到/dev/null的情况。我需要先回忆一下nohup的基本用法和它的作用。nohup主要用于让命令在用户退出登录后继续运行,忽略挂断信号。通常,默认情况下nohup会把输出重定向到当前目录的nohup.out文件中,但用户可能不希望保留这些输出,所以会重定向到/dev/null,也就是丢弃输出。 接下来,用户提到的命令结构应该是nohup command >/dev/null 2>&1 &这样的形式。需要解释每个部分的作用。首先是nohup,然后是命令,接着将标准输出重定向到/dev/null,再把标准错误合并到标准输出,最后的&表示在后台运行。 需要区分标准输出和标准错误,以及重定向符号的使用。用户可能对2>&1不太理解,需要解释文件描述符1和2分别代表什么。同时,说明>/dev/null的作用是丢弃输出,避免生成nohup.out文件。 用户可能的场景是在后台运行一个不需要交互的程序,比如服务器应用或者长时间运行的脚本,并且不希望保留任何日志。这时候使用nohup配合输出重定向就很合适。 还要提醒用户,这样做之后,所有输出都会被丢弃,所以如果之后需要查看日志,这种方法就不适用了。另外,虽然nohup可以防止进程因为终端关闭而终止,但如果是其他原因导致进程结束,比如程序自身错误,nohup也无法保持进程运行。 最后,给出一个具体的例子,比如启动一个Python脚本,并解释命令的各个部分。确保用户能够理解每个符号和参数的意义,以及整个命令的效果。</think>在Linux系统中,使用`nohup`命令结合`>/dev/null`是一种常见的后台运行程序并丢弃输出的方法。以下是分步说明: --- ### **1. 基础命令结构** ```bash nohup your_command > /dev/null 2>&1 & ``` - **关键组件解析:** - `nohup`:忽略`SIGHUP`信号(终端断开时触发的挂起信号),确保进程在终端关闭后仍运行。 - `>/dev/null`:将标准输出(`stdout`,文件描述符1)重定向到空设备文件(丢弃输出)。 - `2>&1`:将标准错误(`stderr`,文件描述符2)合并到标准输出(即一同丢弃)。 - `&`:将命令置于后台运行。 --- ### **2. 各部分的作用** 1. **`nohup`的作用** - 默认情况下,终端退出时会向所有关联的进程发送`SIGHUP`信号,导致进程终止。 - `nohup`会捕获并忽略`SIGHUP`信号,使程序持续运行。 2. **`>/dev/null`的作用** - `nohup`默认会将输出保存到当前目录的`nohup.out`文件。 - 通过`>/dev/null`将标准输出丢弃(`/dev/null`是Linux的“黑洞”设备)。 3. **`2>&1`的必要性** - 单独使用`>`只会重定向标准输出(文件描述符1),但程序的错误输出(`stderr`,文件描述符2)仍可能打印到终端。 - `2>&1`将标准错误合并到标准输出,确保错误信息也被丢弃。 --- ### **3. 典型使用场景** - **后台运行无需交互的脚本**(如数据备份、定时任务)。 - **避免生成日志文件**(尤其对磁盘空间敏感的环境)。 - **SSH远程执行命令后断开连接**,仍需保持程序运行。 --- ### **4. 示例与变体** ```bash # 启动Python脚本并丢弃所有输出 nohup python3 my_script.py > /dev/null 2>&1 & # 仅丢弃标准输出,保留错误日志(不推荐) nohup your_command > /dev/null 2> error.log & ``` --- ### **5. 注意事项** - **无法完全避免进程终止**:`nohup`仅处理终端断开的信号,程序自身错误(如段错误)仍会退出。 - **调试阶段慎用**:丢弃输出后无法查看程序运行状态,建议调试时保留日志。 - **替代工具**:复杂场景可使用`screen`或`tmux`管理会话。 --- 通过这种方式,你可以安全地在后台运行程序,同时避免输出信息干扰或占用存储空间。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值