Linux

在後台執行的程序在linux中被殺死

  • August 11, 2020

我有一個使用 ssh 連接的遠端伺服器。我使用以下命令在伺服器上啟動了一個程序(mongodb)-“/usr/bin/mongod –dbpath /mnt/ebs-300/mongodb –logpath /mnt/ebs-300/log/mongodb/mongodb.log run –config /etc/mongodb.conf &"

由於 ‘&’ 附加到命令中,因此該程序在後台執行。執行該過程並檢查其正常工作後,我從終端(ssh)退出。通過列印以下日誌,此程序在一段時間後被終止 - “得到 kill 或 ctrl c 或 hup 信號 1(掛斷),將在目前 cmd 結束後終止”

如果我做錯了或者有正確的方法從遠端終端執行該過程,有人可以指導我嗎?

謝謝!!

我建議儘管 ‘&’ 在後台執行命令,但當您退出終端時,它仍然會收到 SIGHUP。你可以使用disown命令

噹噹前 shell 終止登錄會話時,disown 阻止目前 shell 向每個給定作業發送 HUP 信號。

如果省略作業,則使用最近啟動或停止的後台作業。

Rory 的回答很好,但是將--fork標誌添加到您的mongod呼叫中也會使其在後台執行。

引用自:https://serverfault.com/questions/305180