Ubuntu-“屏幕”命令的异常行为

Ubuntu-“屏幕”命令的异常行为

我正在尝试将“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,即 的 PID screen

当您传递-daemon给 时bitcoind,它已将自身移至后台。由于没有更多可见的前台进程,screen它已终止自身。因此您根本看不到 5289 PID,并且您的bitcoind进程具有您未预料到的 PID。

TL;DR:只需拨打电话bitcoind -daemon,它就会进入后台。

相关内容