Linux:nohup、&、 2>&1、/dev/null

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Linux:nohup、&、 2>&1、/dev/null

nohup语法


不挂断地运行命令。no hangup的缩写,意即“不挂断”。

nohup Command [ Arg ... ] [ & ]

  • nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号
  • nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用。如nohup command &。


nohup 输出


如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。

如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。


输出基本语法

  • /dev/null 表示空设备文件
  • 0 表示stdin标准输入
  • 1 表示stdout标准输出
  • 2 表示stderr标准错误
  • > file 表示将标准输出输出到file中,也就相当于 1>file
  • > 是定向输出到文件,如果文件不存在,就创建文件;如果文件存在,就将其清空;一般我们备份清理日志文件的时候,就是这种方法:先备份日志,再用`>`,将日志文件清空(文件大小变成0字节);
  • >>这个是将输出内容追加到目标文件中。如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到那个文件的末尾,该文件中的原有内容不受影响。
  • 2> error 表示将错误输出到error文件中
  • 2>&1 也就表示将错误重定向到标准输出上
  • 2>&1 >file :错误输出到终端,标准输出重定向到文件file,等于 > file 2>&1(标准输出重定向到文件,错误重定向到标准输出)
  • & 放在命令到结尾,表示后台运行防止终端一直被某个进程占用,这样终端可以执行别到任务,配合 >file 2>&1可以将log保存到某个文件中,但如果终端关闭,则进程也停止运行。如 command > file.log 2>&1 & 。


nohup 实际应用

控制台日志,输出到当前目录下

#!/bin/sh
APP1_NAME=cms-1.0.1-beta
tpid1=`ps -ef|grep $APP1_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ $tpid1 ]; then
kill -9 $tpid1
fi
# 控制台日志,输出到当前目录下
nohup java -jar $APP1_NAME.jar --spring.profiles.active=pro  &


不输出控制台日志

#!/bin/sh
APP1_NAME=cms-1.0.1-beta
tpid1=`ps -ef|grep $APP1_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ $tpid1 ]; then
kill -9 $tpid1
fi
#不输出控制台日志
nohup java -jar $APP1_NAME.jar --spring.profiles.active=pro  >/dev/null 2>&1 &

如果想要输出到指定目录下,

只需要将/dev/null,替换为指定目录的路径~


nohup 清空

  • 通过不停服务清空nohup日志

cp /dev/null nohup.out

cat /dev/null > nohup.out

echo "" > nohup.out


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
5月前
|
Unix Linux Shell
linux中nohup和/dev/null,21
linux中nohup和/dev/null,21
110 0
|
3月前
|
JSON Java Linux
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
linux 命令使用总结:vim,nohup,find,df,du,sudo,netstat,ll,curl,lastlog
62 5
|
2月前
|
监控 Linux
在Linux中,如何检测并修复/dev/hda5?
在Linux中,如何检测并修复/dev/hda5?
|
3月前
|
Unix Linux Shell
nohup 与 >/dev/null 与 2>&1 作用与区别
nohup 与 >/dev/null 与 2>&1 作用与区别
93 0
|
4月前
|
Unix Shell Linux
技术笔记:linux中SIGHUP与nohup的关系
技术笔记:linux中SIGHUP与nohup的关系
31 1
|
4月前
|
监控 数据挖掘 大数据
Linux中的nohup命令:让你的任务在后台持久运行
**Linux的`nohup`命令让任务在后台持续运行,即使终端关闭。它创建不受终端影响的新进程,常用于长时间任务,如数据处理。`nohup`将输出重定向至`nohup.out`,可使用`-p`选项避免此行为。示例:`nohup ./script.sh > output.log 2>&1 &`。记得检查输出、重定向、记录命令、监控任务并使用日志管理工具。**
|
5月前
|
安全 Unix Linux
探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)
探秘Linux特殊设备文件:(/dev/null,/dev/zero,/dev/random,/dev/urandom等)
459 1
|
5月前
|
存储 Java Linux
【Linux专题_03】Linux安装nohup组件
【Linux专题_03】Linux安装nohup组件
78 0
|
5月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用合集之从MySQL同步数据到Doris时,历史数据时间字段显示为null,而增量数据部分的时间类型字段正常显示的原因是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
SQL 关系型数据库 MySQL
python在mysql中插入或者更新null空值
这段代码是Python操作MySQL数据库的示例。它执行SQL查询从表`a_kuakao_school`中选取`id`,`university_id`和`grade`,当`university_id`大于0时按升序排列。然后遍历结果,根据`row[4]`的值决定`grade`是否为`NULL`。若不为空,`grade`被格式化为字符串;否则,设为`NULL`。接着构造UPDATE语句更新`university`表中对应`id`的`grade`值,并提交事务。重要的是,字符串`NULL`不应加引号,否则更新会失败。
135 2