Linux 系统下如何将前台应用作为后台进程运行:nohup 与 & 命令的使用
COMMAND &
形式
- 前台进程变为后台进程。
- 如果不指定输出重定向(例如:
COMMAND >out.log 2>&1 &
),输出仍然打印到前台。 - 退出 shell 会话(其父进程),进程会收到
HUP
信号,从而退出。 - 在另一个 shell 会话向进程发送
INT
信号,进程会退出。
总结:COMMAND &
形式仅仅将前台进程放在后台运行,但进程输出仍打印在前台。并且,进程不会忽略任何信号。
nohup COMMAND
形式
- 前台进程不会变为后台进程。
- 如果不指定输出重定向(例如:
nohup COMMAND >out.log 2>&1
), 那么标准输出和标准错误都定向到了nohup.out
文件中。 - 退出 shell 会话(其父进程),进程会收到
HUP
信号,但进程免疫HUP
信号,不会退出。 - 在进程前台按 Ctrl + C,或者在另一个 shell 会话向进程发送
INT
信号,进程会退出。
总结:nohup COMMAND
形式仅仅使前台程序忽略 HUP
信号(退出 shell 时进程不会退出),并使进程标准输出和标准错误重定向到 nohup.out
文件。
nohup COMMAND &
形式
上述两种使用形式都不太能满足作为后台进程运行的需求,所以 nohup
与 &
往往结合使用(nohup COMMAND &
),其效果是:
- 进程在后台运行。
- 进程标准输出和标准错误定向到
nohup.out
文件。 - 进程会忽略
HUP
信号,因此退出 shell 会话时,也不会退出。
另外,若想将进程输出定向到其他文件,则可以使用 nohup COMMAND >/path/to/file 2>&1 &
。如果想忽略进程的输出,则可以使用 nohup bin >/dev/null 2>&1 &
。
Xavier 的技术博客
最近的关注重心: 1. 云原生 (Docker、Kubernetes) 2. 微服务 (网关 Kong、服务通讯 gRPC、通讯格式 Pro...
推荐阅读
工作中常用的git命令
在这类系统中,像 Git,Mercurial,Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像...
vipbic赞 4阅读 964
记一次使用gdb诊断gc问题全过程
上次解决了GC长耗时问题后,系统果然平稳了许多,这是之前的文章《GC耗时高,原因竟是服务流量小?》 然而,过了一段时间,我检查GC日志时,又发现了一个GC问题,如下: 从这个图中可以发现,我们GC有一些尖峰,...
扣钉日记赞 2阅读 1.1k
使用kubeasz部署高可用kubernetes集群
本实验采用kubeasz作为kubernetes环境部署工具,它是一个基于二进制方式部署和利用ansible-playbook实现自动化来快速部署高可用kubernetes集群的工具,详细介绍请查看kubeasz官方。本实验用到的所有虚拟机默认软...
李朝阳赞 4阅读 781
100 行 shell 写个 Docker
在初接触Docker的时候,我们必须要了解的几个概念就是Cgroup、Namespace、RootFs,如果本身对虚拟化的发展没有深入的了解,那么很难对这几个概念有深入的理解,本文的目的就是通过在操作系统中以交互式的方式去理...
vivo互联网技术赞 2阅读 445
麒麟操作系统 (kylinos) 从入门到精通 - 故障排查篇
OS平台:银河麒麟桌面操作系统(飞腾版)V10 SP1操作系统镜像:Kylin-Desktop-V10-SP1-General-Release-2203-ARM64
Oulaa赞 3阅读 1.6k
linux中用户登录加载配置文件的过程
shell的类型(站在用户登录登录的角度)登录式shell正常通过某终端登录su - USERNAMEsu -l USERNAME非登录式shellsu USERNAME图形终端下打开命令窗口自动执行的shell脚本用户登录时相关的bash配置文件全局配置文件/...
Dabric阅读 5.3k评论 3
在Linux上查看活跃线程数与连接数
现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一旦不够用了,就会导致程序阻塞、性能低下,所以有时我们需要看看它们的使用情况,以判断这里是否是瓶颈。
扣钉日记赞 3阅读 1k
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。