Невозможно установить сетевой драйвер r8125 в Debian

В первом примере оболочка с PID 100648 — это ваша интерактивная оболочка, а sleep— фактически процесс, заменивший процесс bash -c ''. Системный вызовexecve()порождает новую программу, которая сохраняет PID исходного процесса, вызвавшего ее, поэтому вы не видите здесь исходный bash -c ''. Простая причина, по которой простые команды заменяют процесс оболочки, заключается в том, что он экономит ресурсы, как объяснено в ответе Стефана .

Это также видно из простого теста в одном терминале:

$ echo $$
10250
$ bash -c 'sleep 60'

И в другом:

$ pstree -p 10250
bash(10250)───sleep(21031)

Что касается того, почему это происходит именно так, то это потому, что есть простая команда без конвейеров, иbashвыполняет прямое выполнение для простых команд .

Именно по этой причине bashраспознает, что у вас есть несколько операторов команд во втором примере, следовательно, для каждой sleepкоманды, которую вы имеете в "sleep 10000; sleep 99999 ". В первом случае execve()может просто заменить родительский процесс, и когда новый завершится -, проблем не возникнет. Но здесь оболочка не может выйти после завершения первой команды. Следовательно, будет fork и execve для sleep 10000, что вы видите в выводе pstree, а затем новый fork и execve для sleep 99999

.


Еще один тест, который вы можете выполнить, чтобы поверить, что простая команда в bash -c ''заменяет процесс оболочки, это:

$ bash -c 'grep "^Pid:" /proc/self/status /proc/$$/status'
/proc/self/status:Pid:  23946
/proc/23946/status:Pid: 23946

Обратите внимание, что такое поведение -специфично для bash. Для /bin/dashв дистрибутивах на основе Debian -(, а также очевидно в strace,тоже):

$ sh -c 'grep "^Pid:" /proc/self/status /proc/$$/status'
/proc/self/status:Pid:  24188
/proc/24187/status:Pid: 24187

0
05.06.2021, 01:53
1 ответ

Даже если я установил build-essential, некоторые файлы отсутствовали.
Установка linux-headers-4.19.0-16-amd64решила мою проблему!

После запуска $ apt install linux-headers-4.19.0-16-amd64мне удалось установить драйвер и настроить интерфейс.

Если у вас возникла та же проблема, вам необходимо настроить версию ядра в пакете


ОБНОВЛЕНИЕ (ПВЕ)
Установка pve включает новое ядро.
Чтобы восстановить сетевой драйвер, мне пришлось установитьpve-headers

0
28.07.2021, 11:26

Теги

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