Может ли процесс Linux перехватывать сигналы, отправленные на его дочерний элемент?

Какая у вас версия видеокарты и графического драйвера? Когда мне не удалось заставить 4k работать в Linux на моем GTX 770, я просто добавил xorg-edgers PPA с помощью команды sudo add-apt-repository ppa: xorg-edgers / ppa и установил последние версии драйверов Nvidia, после чего я смог просто выбрать правильные параметры отображения в графическом интерфейсе. Итак, я рекомендую вам попробовать обновить графические драйверы, прежде чем пытаться что-либо еще.

РЕДАКТИРОВАТЬ: Чтобы быть более конкретным, вы используете команду sudo apt install nvidia-current , чтобы установить последние версии драйверов Nvidia, или вы можете использовать apt search nvidia- и ] sudo apt install nvidia-XXX , чтобы установить определенную версию драйвера.

Кроме того, НЕ заходите на сайт Nvidia для установки драйверов!

3
28.06.2018, 16:54
1 ответ

Насколько я знаю, не существует методов оболочки, чтобы сделать то, что вы пытаетесь сделать, это должно быть сделано из пользовательской программы.

Используйтеptrace()для наблюдения за процессом, аналогично тому, как это делает отладчик. Когда процесс получит сигнал, он будет остановлен, а программа мониторинга будет уведомлена (, ее вызов wait()вернется, а WIFSTOPPED(status)будет истинным ).

Затем он может запустить lsof -p <pid>для получения списка открытых файлов процесса, а затем вызвать ptrace(PTRACE_CONT, pid, NULL, 0)для перезапуска процесса.

2
27.01.2020, 21:25

Теги

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