На экране grub нажмите e, чтобы открыть параметры grub. Замените quiet
на nomodeset quiet splash
. Чтобы сделать это изменение постоянным после того, как вы доберетесь до рабочего стола, отредактируйте его в /etc/default/grub
и запуститеsudo update-grub
В Linux вы можете получить PID родительского процесса из переменной $PPID
или /proc/pid/status. Родительский процесс не всегда является вызывающим процессом в случай демонов для примера, но обычно это так. При этом вы может преобразовать каждую программу в оболочку, которая сначала будет регистрировать PID его родительский процесс в файл, а затем выполнить исходный двоичный файл. я не используйте sxkhd, но поскольку вы используете X11, давайте использовать xeyes в качестве пример. Создайте скрипт xeyes
со следующим содержимым и сделайте его исполняемым:
#!/usr/bin/env sh
printf "PPID: %d\n" "$PPID" >> /tmp/XEYES_RUN
xeyes.orig "$@"
Теперь переименуйте исходный двоичный файл xeyes в xeyes.orig:
sudo mv "$(command -v xeyes)" "$(dirname $(command -v xeyes))"/xeyes.orig
Заменить исходный xeyes
скриптом-оболочкой:
sudo cp./xeyes "$(dirname $(command -v xeyes.orig))"
Вызов xeyes
в обычном режиме:
xeyes
Теперь при каждом запуске xeyes PID родительского процесса будет добавлено к /tmp/XEYES _RUN. Если запустить из командной строки будет PID вашей оболочки, например /bin/bash.
Из оболочки в Linux:
readlink "/proc/$PPID/exe"
В любой стандартной оболочке переменная $PPID
относится к родительскому процессу. В C вы можете получить это с помощью getppid()
. В большинстве языков есть способ получить его (, например. getppid
в perl, os.getppid
в python и т. д. ).
После того, как вы получили PID родительского процесса, сопоставление его с исполняемым файлом будет привязано к конкретной системе. ps
сообщит вам имя процесса или аргументы командной строки, но они ненадежны, , так как они (обычно )не включают полный путь и могут быть изменены процессом самим собой или любым другим процессом, запущенным от имени того же пользователя.
В Linux на исполняемый файл процесса указывает /proc/<pid>/exe
. Это «волшебная» символическая ссылка :, даже если исходный исполняемый файл был удален или переименован, вы все равно можете прочитать его (, например. для копирования в другое место )или повторного выполнения.