Я использую RMagicK для Ruby для рисования и отображения изображений. Проблема в том, что после:RMagicK image.display не возвращается сразу
img = rvg.draw()
img.diaplay
контроль не возвращается вызывающему абоненту. Пользователь должен вручную закрыть окно для продолжения программы. Как я могу обойти это поведение?
Спасибо, это работает, но когда я жду 1 секунду, а затем попытаюсь убить его с помощью 'Process.kill (« QUIT », pid)' он не заканчивается. –
@YanKingYin Теперь становится сложнее. Если я хорошо помню, 'img.display' будет использовать оконную систему подчеркивания для отображения изображения,' X11' на Linux или 'XQuartz' на Mac. Таким образом, оконная система может захватывать сигнал SIGQUIT. Одним из возможных решений может быть отправка сигнала, который нельзя поймать, например, SIGKILL или SIGSTOP. Кроме того, вы можете использовать «Timeout # timeout» в сочетании с 'Kernel # exit' для остановки дочернего процесса после исправить количество секунд. – yeyo
Большое спасибо, 'SIGKILL' делает это :) –