Linux 执行一段 shell 命令加与不加 nohup 到底有什么区别?

2021-09-17 23:10:08 +08:00
 BaseException

请教 Linux 大佬、运维大佬,标题中的问题。下面我先抛砖引玉。

nohup 英文全称 no hang up (不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

以上来自 https://www.runoob.com/linux/linux-comm-nohup.html

执行一个 java 程序,使用命令 1 或 2

  1. java -jar xxx.jar >> ./xxx.log 2>&1 &
  2. nohup java -jar xxx.jar >> ./xxx.log 2>&1 &

问题 1:

我使用命令 1 执行的程序,在退出终端之后,进程依然很好的存活着啊,nohup 的真正作用是什么?

问题 2:

>> ./xxx.log 这个 >> 跟文件之间需要空格吗?还是有没有空格都一样,我经过测试似乎是一样达到目的的。我知道 > 是直接覆盖, >> 是追加到文件(如果之前文件存在且有内容)。

谢谢彦祖们。

4521 次点击
所在节点    Linux
25 条回复
wellsc
2021-09-18 14:46:51 +08:00
@salmon5 systemd 很多东西就是借鉴 supervisor 的,可以理解为 kernal + cgroup 控制的 supervisor 啦
allAboutDbmss
2021-09-19 15:34:08 +08:00
可以用 screen 再分离出来
julyclyde
2021-09-22 12:22:05 +08:00
@nbweb 就凭 supervisord 本身不是编译的,它就不配当一号
万一系统里没有 python 那不就完蛋了?
julyclyde
2021-09-22 12:22:31 +08:00
@wellsc 不能因为 supervisord“用了正确的方法”就说别的软件学他啊
这完全两码事
wellsc
2021-09-22 13:05:22 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/802649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX