后台运行命令nohup

本文详细解释了nohup命令在shell脚本中的应用,包括不挂起进程、日志输出、标准输入输出重定向,以及如何通过2>&1实现错误输出到标准输出的合并。还给出了Python脚本示例以展示这些概念的实际操作。

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

1、nohup

nohup sh run.sh 2>&1 &
nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态

不指定日志文件的情况下,输出内容默认写入当前运行命令路径下的nohup.out文件中。

2、2>&1

0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容
2>&1 是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。

3、&

& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务

4、举例说明如下:

nohup python my.py >> /usr/local/python/xxf/my.log 2>&1 &

// 2>&1中的`&`是为了区分文件1和标准输出1,是一个区分符号,好比python中转义符的作用。而最末尾的`&`是将该命令后台运行。

该命令的含义是用python不间断的运行my.py这个脚本,并且将脚本输出的内容重定向输入my.log中(>>意为追加,如果用>会让其中的内容清空)
后面的my.log 2>&1 是将2(错误内容)输入到&1(标准输出),而&1(标准输出)输入到my.log中,即错误和标准内容都会输出到my.log中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值