Да, это было связано с debian #939839 . Согласно совету для Debian #939401 , я установил устаревшие драйверы Debian 390x :
.
sudo apt install nvidia-legacy-390xx-driver
А затем перенастроил мою настройку GLX, чтобы использовать драйверы Nvidia 390x, а не драйверы Nvidia 430:
sudo update-glx --config nvidia
И это все исправило. Надеюсь, со временем драйверы 430 будут исправлены, и я смогу вернуться к ним.
Да, это так. Вы можете вызвать его из своей оболочки, набрав bg
после ^Z, и он продолжит работать под своим собственным PID.
Это зависит от того, что вы подразумеваете под «программой».
Во-первых, отрывок из видео вводит в заблуждение, когда говорится: «Этот сеанс начинается с одного задания , содержащего процесс оболочки. » Как поясняется в Что такое разница между работой и процессом? , а также, как следует из POSIX-определения задания , задания это концепция оболочки.Таким образом, запущенная оболочка сама по себе не является заданием, если только она не является частью задания из родительского процесса оболочки . В отрывке родительским процессом является терминал , который, как поясняется в The Bash Guide , представляет собой просто программу с графическим интерфейсом, используемую для запуска текстовых -интерфейсных программ, которые не не обязательно снаряды.
Вот несколько команд, иллюстрирующих, что таблица из Демистифицированный TTY является точной:
$ cat
hello
hello
^Z
[1]+ Stopped cat
$ cat | sort
^Z
$ jobs
[1]- Stopped cat
[2]+ Stopped cat | sort
В последнем выводе видно, что существуют два задания:cat
и cat | sort
, последнее эквивалентно ls | sort
из таблицы.
Что касается того, «запускается ли программа, запускаемая bash, в новом задании», POSIX определяет:
Job
A set of processes, comprising a shell pipeline, and any processes descended from it, that are all in the same process group.
Итак, если вы считаете, что «набор процессов, составляющих конвейер оболочки» — это работающая программа (, что вы можете сделать на основании того, что программа — это набор инструкций для выполнения ), тогда да.
Но поскольку "программа" является более общей концепцией, чем просто "конвейеры оболочки", то в целом неверно, что программы, запускаемые bash, запускаются в новом задании. Например, cat
и sort
также являются программами, но каждая из них не запускается в отдельном задании.
Кроме того, встроенные функции оболочки являются "программами" в том смысле, что они являются "набором инструкций". Но они являются встроенными компонентами самой программы-оболочки, поэтому для их выполнения не обязательно создавать отдельные дочерние процессы. В тех случаях, когда они не выполняются в отдельных дочерних процессах, они не могут быть частью задания для оболочки.