Spring有this文档来运行可执行的spring boot jar。
但是,我使用 nohup linux命令从终端运行此jar,并且工作正常。
问题是:使用nohup或使用init.d服务,应用程序的结果是否相同?或者始终使用init.d是正确的方法吗?
答案 0 :(得分:2)
他们做不同的事情。 nohup
运行命令,忽略HANGUP(HUP)信号。 init.d
用于在服务器启动时自动运行命令(并在关闭时按顺序关闭命令)。如果您希望弹出启动应用程序在系统重新启动后自动运行,请将其放入init.d
- 如果您想在每次重启后手动启动它,可以使用nohup
。
答案 1 :(得分:1)
nohup
以一种不受挂断影响的方式运行命令,这可能会导致问题。许多程序设计用于在接收HUP信号时重新读取其配置文件,重新启动或执行其他操作(大多数服务/守护程序重新启动或重新读取配置)。除非您特别想忽略HUP信号,否则使用nohup
不是最佳解决方案。
您可以在命令后使用&
以便在后台运行它,如果您想避免输出到终端,您可以将输出发送到/ dev / null:
mycommand > /dev/null 2>&1 &
2>&1
会将stderr发送到stdout,因此它会转到/ dev / null。