我当前正在使用nohup
命令。
为了产生新的HyperLeDger Composer Rest服务器实例,我需要在Docker CLI容器中执行此类命令。这就是我现在这样做的方式:
# start an interactive terminal with cli container
docker exec -it cli bash
# start rest server with defined port number
nohup composer-rest-server -c <myCard> -p <myPort> &
这将使我返回与REST服务器的过程ID相关的PID。
但是,如果我这样做,
# run a process that is detached to start the rest server
docker exec -d cli composer-rest-server -c <myCard> -p <myPort> &
将启动REST服务器,但是,返回的PID是不是REST服务器的PID。
为什么会发生这种情况?
ps:我需要PID稍后杀死产卵的REST服务器。
在您的第二个命令中,结束&
在docker exec
本身上工作,而不是在容器内运行的过程。
既然您已经使用-d
选项以独立模式运行了容器,那么为什么要把REST服务器放在后台?