Каков наиболее приемлемый способ управления (то есть корректно завершение) демон MongoDB в Python?

Просто поместите цветную панель на свою собственную ось и используйте subplots_adjust, чтобы освободить место.

В качестве быстрого примера:

import numpy as np
import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=2, ncols=2)
for ax in axes.flat:
    im = ax.imshow(np.random.random((10,10)), vmin=0, vmax=1)

fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(im, cax=cbar_ax)

plt.show()

enter image description here [/g0]

0
задан jiccan 13 July 2018 в 19:30
поделиться

2 ответа

Этот ответ - используя p = Popen(), а затем p.terminate() - казалось, был именно тем, что я искал.

0
ответ дан jiccan 17 August 2018 в 12:12
поделиться

Прежде всего, вы не должны запускать процесс mongod с python. mongod следует запустить и остановить из оболочки. Поскольку база данных всегда должна быть готова к подключению. Но если вы действительно хотите сделать это с помощью python, вы можете использовать:

from subprocess import call
call(["mongod","&"])

, чтобы запустить процесс mongod.

Чтобы закончить процесс:

from subprocess import call
call(["pkill", "mongod","&"])
1
ответ дан Ramazan Polat 17 August 2018 в 12:12
поделиться
  • 1
    В будущем мы будем переносить начало демона в другом месте, но для этого "имитируемого" поскольку база данных была создана для этой единственной цели и только взаимодействует с ней через эту одну программу, я хотел бы получить все, что связано с Python. (Думаю, я мог бы написать скрипт bash, обертывающий все это, но у меня уже есть один скрипт Python, который вызывает сценарий, о котором я говорил несколько раз, и мне кажется, что я делаю вещи излишне сложными.) Это говорящий ... , используя call(["mongod"]) и call(["pkill", "mongod"]), возвратил ошибку. – jiccan 13 July 2018 в 19:41
  • 2
    Кроме того, согласно эта SO post ... subprocess.call() выполнит команду, описанную args, дождитесь завершения команды, а затем вернет атрибут returncode. & Quot; Я делаю not , чтобы ждать завершения команды. – jiccan 13 July 2018 в 20:01
  • 3
    @jiccan Я забыл поставить & после каждой команды. Исправленный. – Ramazan Polat 13 July 2018 в 21:36
Другие вопросы по тегам:

Похожие вопросы: