nohup后台启动kibana
song

nohup 是 Linux/Unix 系统中的一个命令,全称是 “no hang up”,意为不要挂断
它的主要作用是:

  • 让程序在退出终端(比如关闭SSH连接)后继续运行。
  • 忽略挂起(SIGHUP)信号,通常终端关闭时系统会给进程发送 SIGHUP 信号,nohup 可以避免程序因此被终止。
    通常 nohup 会将程序的输出(标准输出 stdout 和标准错误 stderr)重定向到一个文件,比如默认的 nohup.out 文件。

基本用法

1
nohup <command> [参数] &
  • & 表示将命令放入后台执行。
  • 默认情况下,nohup 会将输出(标准输出和标准错误)重定向到当前目录的 nohup.out 文件中。
  • 如果当前目录不可写(如权限问题),输出会重定向到 $HOME/nohup.out

其实 nohup 自身参数很少,主要是用来包裹你的程序。常用的搭配是:

  • &:把程序放到后台运行。
  • >>>:手动指定输出文件。
  • 2>&1:标准错误也重定向到标准输出。

常见组合:

命令 说明
nohup command & 后台运行程序,输出到 nohup.out
nohup command > mylog.log 2>&1 & 后台运行程序,输出和错误都写到 mylog.log
nohup command > /dev/null 2>&1 & 后台运行,完全忽略输出

[!note] 标准文件描述符(File Descriptor,简称 FD)
文件描述符(File Descriptor,简称 FD)是操作系统中用于标识和操作输入/输出(I/O)资源(如文件、管道、套接字等)的抽象概念。在 Linux/Unix 系统中,每个进程启动时都会默认打开三个标准文件描述符,称为 标准文件描述符

  1. 0(标准输入,stdin)
    • 用于读取输入(默认来源是键盘输入)。
    • 对应符号:<(输入重定向)。
  2. 1(标准输出,stdout)
    • 用于正常输出(默认输出到终端屏幕)。
    • 对应符号:> 或 1>(输出重定向)。
  3. 2(标准错误,stderr)
  • 用于错误输出(默认输出到终端屏幕)。
  • 对应符号:2>(错误重定向)。
    1
    >command > output.log 2>&1
  • > 是 1> 的简写,表示将 标准输出(FD 1) 重定向到 output.log
  • 2>&1 表示将 标准错误(FD 2) 重定向到 FD 1 的当前目标(即 output.log)。
  • 关键点&1 中的 & 表示 1 是文件描述符,而不是一个名为 1 的文件!

常见使用场景

1. 运行命令并忽略挂断信号

1
nohup <command> &
  • & 将命令放入后台运行(终端可继续操作)。

2. 自定义输出文件

1
nohup <command> > output.log 2>&1 &
  • > output.log 将标准输出重定向到 output.log
  • 2>&1 将标准错误也重定向到标准输出(即同一文件)。

3. 完全静默运行(丢弃输出)

1
nohup <command> > /dev/null 2>&1 &
  • **>/dev/null**(或 1>/dev/null): 将标准输出(FD 1)重定向到 /dev/null(黑洞设备),即丢弃所有正常输出。
  • 2>&1:将标准错误(stderr)合并到标准输出(stdout)
  • 所有输出会被丢弃,适合不需要日志的场景。

4.后台运行服务/脚本,仅监控错误

1
nohup <command> >/dev/null 2>output.log &
  • **>/dev/null**(或 1>/dev/null): 将标准输出(FD 1)重定向到 /dev/null(黑洞设备),即丢弃所有正常输出。
  • 2>output.log: 将标准错误(FD 2)重定向到 output.log 文件,仅保存错误日志。

kibana 后台启动

  1. 保留所有日志

    1
    2
    nohup ./bin/kibana --allow-root > nohup.out 2>&1 &
    tail -f nohup.out
  2. 没有日志

    1
    nohup ./bin/kibana --allow-root > /dev/null 2>&1 &
  3. 保留错误日志

    1
    2
    nohup ./bin/kibana --allow-root >/dev/null 2>nohup.out &
    tail -f nohup.out
由 Hexo 驱动 & 主题 Keep