golang执行linux后台命令

前提:
我想通过golang执行linux命令启动一个类似tomcat这样的服务器

问题:
golang可以实现执行命令并启动服务,但是当我把golang关掉的时候,已经启动的服务也会相应关闭,不知道是通过什么方法将两者的关联去掉,即我关闭golang不会关闭通过golang启动的服务。

多谢各位高手了!

阅读 9.1k
4 个回答

golang执行另外一个程序的时候,比如执行程序B,默认是作为B的父进程启动B的,你可以ps -ef看下父子关系。
所以你要做的是,让新启动的B进程父进程为1号进程,方法为

runuser -l root -c "程序  参数 2>&1 &"

后面的“2>&1 &”不要动,前面的程序和参数替换实际运行的即可

通过一个服务A启动另外一个服务B,关闭A之后B保持运行,是吧?

你可以使用supervisor,一个进程守护工具,即使进程挂了也会自动重启进程。

然后通过A操作supervisor,通过supervisor守护B,这样应该就没有问题了。

新手上路,请多包涵

nohup也可以吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题