nohup命令详解

简介: nohup命令详解

一、背景说明:

启动服务的时候,如果使用如下命令,则会在start.sh脚本所在的目录下,产生一个名为 nohup.out 的输出文件

nohup ./startup.sh &

可以看到下面这个例子,一开始当前目录是没有nohup.out文件的,经过这行命令之后就可以查看到当前脚本输出的信息在nohup.out文件里了。

如果不想要这个多余的 nohup.out 文件,可以使用如下命令解决:

nohup  ./startup.sh  >/dev/null  2>&1  &

二、命令解析:

1、nohup和尾部 &

1)nohup 是no hangup,不要挂断,永久运行。关闭终端,当前运行的进程不终止,标准输出内容会输出到当前目录的 nohup.out 日志文件中而不显示在终端。

2)命令最后一个 &,表示后台运行的意思,和 nohup 配置表示不挂断后台运行。

2、>/dev/null 和 2>&1

1)/dev/null 是 Linux 一个空设备文件,通常也被称为位桶(bit bucket)或黑洞,这个文件接收到任何数据都会被丢弃,也就是不输出任何信息到终端。

2)> 代表重定向到哪里;重定向的符号有两个:> 或 >>,> 会先清空文件,然后再写入内容,>> 会将重定向的内容追加到现有文件的尾部

3)Linux系统预留了三个文件描述符:0、1 和 2,他们的意义如下所示:

①0:标准输入流 stdin

②1:标准输出流 stdout,默认值是1

③2:标准错误流 stderr

4)“>/dev/null” 等价于 “1>/dev/null”,表示标准输出(1)输出到 /dev/null 中,即终端不输出标准输出信息;

2>&1” 中的 “&” 是等价于的意思,表示标准错误(2)输出的位置等价于标准输出(1)的位置,即等价于 “2>/dev/null”, 即终端不输出标准错误信息。

因此,“>/dev/null 2>&1” 表示 标准错误信息和标准输出信息,在终端上均不输出。

三、指定输出文件:

如果想要将服务启动和运行过程中的日志信息输出到指定位置(比如:/var/log/start.log),可以参考如下命令:

nohup ./startup.sh >/var/log/start.log 2>&1 &

或者

nohup sh startup.sh >/var/log/start.log 2>&1 &

四、sh xxx.sh与./xxx.sh区别:

sh xxx.sh是用sh执行startup.sh,startup.sh可以没有执行标志,可以不用加./,可以不用在脚本第一行写上#!/bin/sh。

./startup.sh是调用脚本第一行制定的shell去解释执行,缺省为sh,就是bash。


相关文章
|
人工智能 PyTorch 算法框架/工具
AI 容器镜像部署 Qwen-VL-Chat
本文将基于阿里云 AMD 服务器和龙蜥 AI 容器服务,快速搭建出个人版视觉 AI 助手服务
|
2月前
|
机器学习/深度学习 数据可视化 算法
基于大数据的信贷风险评估的数据可视化分析与预测系统
本系统基于Java、Vue和Spring Boot技术,构建信贷风险评估的可视化分析与预测平台。融合机器学习模型与数据可视化,实现信贷数据的高效处理、风险精准预测与直观展示,提升金融机构风控能力与决策效率。
|
2月前
|
Linux Python
Anaconda和Miniconda在Linux系统下迁移虚拟环境
将A服务器的Miniconda虚拟环境loonflow3通过`conda list --explicit`导出配置,并打包env目录为tar.gz文件,使用scp传输至B服务器后解压至对应路径,再激活环境即可完成迁移。
153 5
|
8月前
|
人工智能 自然语言处理 数据可视化
中国版“Manus”开源?AiPy:用Python重构AI生产力的通用智能体
AiPy是LLM大模型+Python程序编写+Python程序运行+程序可以控制的一切。
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
1288 0
|
算法 Linux
Linux copy时排除某文件/目录
Linux copy时排除某文件/目录
720 0
|
算法 数据可视化 数据挖掘
Barnes-Hut t-SNE:大规模数据的高效降维算法
Barnes-Hut t-SNE是一种针对大规模数据集的高效降维算法,它是t-SNE的变体,用于高维数据可视化。t-SNE通过保持概率分布相似性将数据从高维降至2D或3D。Barnes-Hut算法采用天体物理中的方法,将时间复杂度从O(N²)降低到O(NlogN),通过构建空间索引树和近似远距离交互来加速计算。在scikit-learn中可用,代码示例展示了如何使用该算法进行聚类可视化,成功分离出不同簇并获得高轮廓分数,证明其在大數據集上的有效性。
459 1
|
存储 安全 Java
settings.xml详解(很详细读这一篇就够了)
settings.xml是Java项目中用于配置Maven的重要文件,它详细规定了Maven的运行规则和行为。该文件通常位于用户家目录下的.m2文件夹中,或者项目根目录下的.mvn文件夹内。settings.xml中包含了众多配置项,从代理设置、镜像仓库配置,到服务器认证信息、插件组等,均可以在此文件中进行细致定义。通过合理配置settings.xml,我们可以优化Maven的依赖下载速度,保障仓库访问的安全性,甚至实现私有仓库的搭建与管理。深入了解settings.xml的每一项配置,对于提高Maven使用效率、保障项目构建稳定性具有重要意义。因此,无论是Maven初学者还是资深用户,都应仔
16156 4
|
Ubuntu Shell Linux
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
linux shell 后台执行脚本的方法 脚本后台运行 后台运行程
801 0
|
JavaScript API
在Vue中,有哪些方法可以监听元素的状态变化?
在Vue中,有哪些方法可以监听元素的状态变化?
790 2