nohup后台启动kibana
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 系统中,每个进程启动时都会默认打开三个标准文件描述符,称为 标准文件描述符:
- 0(标准输入,stdin)
- 用于读取输入(默认来源是键盘输入)。
- 对应符号:
<(输入重定向)。- 1(标准输出,stdout)
- 用于正常输出(默认输出到终端屏幕)。
- 对应符号:
>或1>(输出重定向)。- 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
2nohup ./bin/kibana --allow-root > nohup.out 2>&1 &
tail -f nohup.out没有日志
1
nohup ./bin/kibana --allow-root > /dev/null 2>&1 &
保留错误日志
1
2nohup ./bin/kibana --allow-root >/dev/null 2>nohup.out &
tail -f nohup.out