我正在尝试将“bitcoind”发送到后台。
$ screen bitcoind -daemon &
[1] 5289
然后我查询这个进程的 PID,发现 PID 已经改变了
$ ps -ef | grep bitcoin
someuser 4003 1 14 16:16 ? 00:00:39 bitcoind -daemon
someuser 5384 3648 0 16:20 pts/0 00:00:00 grep --color=auto bitcoin
然后我这样做:
$ screen -r
There is no screen to be resumed.
我正在尝试将这个“bitcoind”程序移至后台,但由于某种原因,PID 发生了变化,我认为这是屏幕不工作的原因。有人能给我一些提示,告诉我如何将这个过程移至后台,这样当我退出 SSH 会话时,bitcoind 将继续运行吗?
我正在使用 Ubuntu 12.04
此致,
答案1
我假设bitcoind
你的意思是bitcoind
。
让我们看看你在做什么:
- 您正在启动一个
screen
通常会启动其中的以下程序。 - 作为程序,您传递
bitcoind -daemon
。这将bitcoind
在后台启动(通常通过使用fork(2)
)。 - 然后你
&
通过 发送screen
到你的 shell 的后台。你看到的 PID 是你的 shell 启动的 PID,即 的 PIDscreen
。
当您传递-daemon
给 时bitcoind
,它已将自身移至后台。由于没有更多可见的前台进程,screen
它已终止自身。因此您根本看不到 5289 PID,并且您的bitcoind
进程具有您未预料到的 PID。
TL;DR:只需拨打电话bitcoind -daemon
,它就会进入后台。