Создайте слабую ссылку на объект

В вашем коде нет ничего плохого, проблема в том, что команда, которую вы запускаете, пытается что-то сделать с текущим терминалом и неправильно восстанавливает настройки, при которых происходит отключение. Замена вашей команды на «сон», как показано ниже, будет работать нормально и без проблем остановится на Ctrl + C:

import subprocess

command = ['/bin/bash']
command.extend(['-c', 'sleep 600'])

p = subprocess.Popen(command)

try:
  p.communicate()
except KeyboardInterrupt:
  p.terminate()

Я не знаю, что вы пытаетесь сделать с помощью spark-shell, но если вам не нужен его вывод, вы можете попробовать перенаправить его в / dev / null, чтобы он не испортил дисплей терминала:

p = subprocess.Popen(command, stdout=subprocess.DEVNULL)
7
задан Andres 4 November 2008 в 13:03
поделиться

2 ответа

Grant Skinner записал превосходный ряд статей об управлении ресурсами в ActionScript 3, и в третьей части того ряда он представляет WeakReference и классы помощника WeakProxyReference, которые могут использоваться для этого.

5
ответ дан 7 December 2019 в 05:33
поделиться

Прямо сейчас я сделал простой класс для использования в своих интересах Словаря weakKeys параметр:

public class WeakReference
{
    private var dic

    public function WeakReference(object)
    {
        this.dic = new Dictionary(true)
        this.dic[object] = true
    }

    public function get Value()
    {
        for (var object in this.dic)
        {
            return object
        }
        return null
    }
}
3
ответ дан 7 December 2019 в 05:33
поделиться
Другие вопросы по тегам:

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