1

Я хотел бы, чтобы некоторые серверы, такие как MongDB, работали внутри терминала под Windows.

Я использую следующую команду для их запуска:

start <PATHTOMONGO>\mongod.exe --dbpath <PATHTODATA>

Стандартный терминал Windows очень грубый, например, он не позволяет легко копировать / вставлять и не позволяет (легко) изменять размер окна.

Поэтому я попробовал MinTTY от Cygwin с помощью следующей команды:

<PATHTOMINTTY>\mintty.exe -e <PATHTOMONGO>\mongod.exe --dbpath <PATHTODATA>

Я обнаружил, что он работает нормально, за исключением одной вещи: если я нажимаю Ctrl-C, он просто убивает сервер, не позволяя ему корректно завершить работу.

Если я использую следующую команду:

<PATHTOMINTTY>\mintty.exe --hold always -e <PATHTOMONGO>\mongod.exe --dbpath <PATHTODATA>

Я вижу красное сообщение в конце вывода на сервер

<PATHTOMONGO>\mongod.exe: Interrupt

и сервер просто останавливается.

Напротив, при start Windows он печатает много сообщений, указывающих на постепенное завершение работы.

Похоже, mintty выполняет некоторый перевод комбинации Ctrl-C . Как избежать / настроить это?

1 ответ1

0

Вы - жертва печально известной проблемы № 56 - Улучшение поддержки нативных консольных программ. Вики-запись mintty «Взаимодействие ввода-вывода с инопланетными программами» указывает, что вы можете обойти эту проблему, используя оболочку, подобную winpty, при запуске проблемной программы в mintty.

(Этот вопрос, вероятно, является дубликатом Как вежливо убить процесс Windows из Cygwin)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .