vmware-tools нужны полные заголовки ядра.
вероятно, make headers_install не экспортирует все, что нужно vmware. попробуйте скопировать реальный исходный код ядра и протестируйте. если он работает, удалите все файлы, кроме .h
find /tmp/headers-full -not -name \*.h -delete
, и повторите попытку. если это сработает, сравните оба дерева заголовков, чтобы увидеть, что отсутствует
Нет, «значение по умолчанию» и «значения, унаследованные от родителя оболочки» — это не одно и то же. В случае execve «по умолчанию» относится к SIG_DFL
, что вызывает действие по умолчанию, указанное в man 7 signal
. В случае bash «значения, унаследованные от родителя оболочки» означает именно то, что он говорит; если такой сигнал был проигнорирован(SIG_IGN
)его родителем, он будет проигнорирован и его потомком.
Ключом к пониманию того, что здесь происходит, является слово «обработано». Он относится к пользовательской функции обработчика сигналов, отличной от SIG_DFL
или SIG_IGN
. Он должен быть сброшен с помощью execve, так как новый процесс не будет иметь функции обработчика сигналов, которую использовал старый процесс.
Обратите внимание, что в более новых версиях man-страницы execve «обработанные» сигналы называются «перехваченными», чтобы соответствовать терминологии, используемой в остальной части Linux. Это по-прежнему отличается как от сигналов по умолчанию, так и от игнорируемых сигналов.
Простая версия :если bash или родитель bash имели сигнал, отмеченный как SIG_IGN
, он будет SIG_IGN
и в новом дочернем элементе. В противном случае в новом потомке будет SIG_DFL
.Он никогда не может быть обработчиком в новом дочернем элементе, поскольку в новом дочернем элементе не будет обработчика из bash или его родителя.