Как сбросить VT 1 (или избежать попадания в плохое состояние)?

Модуль мог быть загружен в initramfs при загрузке. Вы должны повторно сгенерировать initramfs, чтобы включить ваши изменения в /etc/modprobe.d / *

Выполните следующее, чтобы восстановить ваши initramfs

dracut -f /boot/your-initramfs

При перезагрузке драйвер не должен загружаться автоматически

{{1 }}
0
06.05.2019, 12:48
1 ответ

Дочерний процесс kodi по-прежнему контролирует vt 1. Простое выполнение pkill kodiосиротит дочерний процесс, но не убьет его. Экран становится черным, потому что коди фактически наполовину -мертв. Уничтожение kodi и всех его дочерних процессов вернет вас обратно в консоль.

Чтобы получить все PID коди и его дочерние элементы, вы можете сделать что-то вроде этого (в bash ). Во-первых, создайте функцию для получения всех дочерних PID данного PID :

.
getfamilypids() {
    local inpid="$1"
    local pidarray=()

    function getfamilypidshelper() {
        local pidin="$1"
        pidarray+=($pidin)
        local CPIDS="$(pgrep -P $pidin)"
        for cpid in $CPIDS; do
            getfamilypidshelper $cpid
        done
    }

    getfamilypidshelper "$inpid"

    #reverse the array
    local rpidarray=()
    for ((z=${#pidarray[*]}-1; z>-1; z--)); do
        rpidarray+=(${pidarray[z]})
    done

    echo ${rpidarray[*]}
}

Чтобы получить PID запущенного вами процесса kodi, вы можете сделать это:

pgrep -f kodi

Затем вы можете получить дочерние процессы полученного PID:

getfamilypids __PID_FROM_ABOVE__

Обратите внимание, порядок PID из getfamilypidsобратный. Вы должны killих последовательно слева направо. Я написал метод для автоматического уничтожения всех из них и ожидания их полного завершения, прежде чем убить следующего, но это тема для другого вопроса.

0
28.01.2020, 03:43

Теги

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