在后台以服务形式运行命令文件

在后台以服务形式运行命令文件

基本上我要做的就是运行以下命令,

./home/pooldaemon/monero-stratum/build/bin/monero-stratum /home/pooldaemon/monero-stratum/config.json

这样做的唯一缺点是我不能做其他任何事情。所以我想让它在后台运行,这样我就可以同时在 Linux 服务器上做其他事情。

为了记录,我正在运行 Linux Ubuntu 16.04 LTS 服务器。

我已经尝试过不同的解决方案,但老实说,其中大多数都超出了我对 Linux 的了解和理解。

答案1

如果您的终端需要打开,常见的方法是将其附加&到您的命令中(如前所述)。但我不建议这样做,因为您将无法再使用终端(您的命令仍会提示其输出)。最好将输出转发到文件,或者 - 如果您不需要输出 - 通过附加到“nowhere” > /dev/null > 2>&1 &> /dev/null将所有输出重定向到“nowhere”,包括错误(2>&1),最后&在后台执行命令。尝试:

./home/pooldaemon/monero-stratum/build/bin/monero-stratum /home/pooldaemon/monero-stratum/config.json > /dev/null 2>&1 &

我认为,没有比这更简单的方法了,但使用守护进程会更好。取决于您的要求...

答案2

除了重定向输出之外,您还可以使用“nohup”来保护进程免受注销的影响,如下所示

nuhup ./home/pooldaemon/monero-stratum/build/bin/monero-stratum /home/pooldaemon/monero-stratum/config.json &

nohup 命令捕获当父进程终止时进程可能接收的挂断信号。

答案3

正如 bodhi.zazin 所建议的:

./home/pooldaemon/monero-stratum/build/bin/monero-stratum /home/pooldaemon/monero-stratum/config.json &

另一个选择可能是将其作为守护进程进程。如果使用图形终端,这将允许您关闭终端而不中止进程。您可以阅读守护进程的一般描述在维基百科上

相关内容