Linux 中后台运行的进程被终止

Linux 中后台运行的进程被终止

我有一个使用 ssh 连接的远程服务器。我使用以下命令在服务器上启动了一个进程 (mongodb) - “/usr/bin/mongod --dbpath /mnt/ebs-300/mongodb --logpath /mnt/ebs-300/log/mongodb/mongodb.log run --config /etc/mongodb.conf &”

由于命令后面附加了“&”,因此该进程在后台运行。运行进程并检查其是否正常工作后,我退出了终端 (ssh)。一段时间后,该进程被终止,并打印了以下日志 - “got kill or ctrl c or hup signal 1 (Hangup), will cease after current cmd ends”

如果我做错了,有人可以指导我吗?或者是否有正确的方法从远程终端运行该过程。

谢谢!!

答案1

我建议,尽管“&”在后台运行命令,但当你退出终端时,它仍然会收到 SIGHUP。你可以使用否认命令

disown 阻止当前 shell 在终止登录会话时向每个给定作业发送 HUP 信号。

如果省略作业,则使用最近启动或停止的后台作业。

答案2

Rory 的回答很好,但是--forkmongod调用中添加标志也会使其在后台运行。

答案3

这就是 nohup 的用途!

如果它存在于您的发行版中,那么它是一种简单的方法,而且它可以让您保留日志文件。

相关内容