关于linux 服务的后台运行

前几天在部署一个服务的时候,通过ssh 进行终端访问的情况下,服务运行正常,但是一旦关闭终端会话, 则服务会停止。

后来想想应该是本次访问的时效是被系统限制在仅在终端访问期间,服务无法后台运行。

通过研究文档,最后发现确实是这个问题。使用nohup 的方式成功启动,方法如下


1) nohup  +command+ &(将该服务转为后台运行,命令端不显示运行细节)

该命令会在服务所在的目录下会产生一个nohup.out 的文件,用来记录所有输出内容

2)nohup + command >myout.file  + 2>&1 +&(将改为服务转为后台运行,终端不显示运行细节)

该命令与 1)不同是会将 所有输出(包括错误重定向) 输出至 指定文件 (myout.file)中

另外可通过

jobs -l 的命令进行 查看 所有后台运行的服务

nohup的原理:

linux 在进行终端访问时,系统会将本次终端通过“猫”视为一次会话,当用户退出时,则会话结束,则猫(hangup)此次用户连接,故nohup 则是 no hang up  顾名思义 就是强制不要挂断本次会话。故服务可以在关闭终端连接时而服务后台运行

==========================================================

虽然解决了问题,但是有一点困扰了我很久。

为什么有的服务可以不使用nohup 就可以台运行,有的就服务就必须借助此命令。很费解,难道是我记错了?

留个坑,下次更新。也请各位大佬看到的能指点一下







猜你喜欢

转载自blog.csdn.net/Aking2333/article/details/79071820