Как запустить команду из файла /etc/sudoers.d/ неинтерактивным способом?

Ваша техника с DISPLAY= :2 работала на моем компьютере, и у меня одновременно работали два X-сервера. Мой Xserver 1.20.3, так что он все еще должен работать с вашей версией 1.19.6. У моего компьютера есть Intel iGPU. Кроме того, у меня нет Ubuntu, и я использую дистрибутив Linux без systemd, так что может быть по-другому.

Я просмотрел ваш журнал и заметил, что X-сервер отключился после раздела с клавиатурой. Я сравнил это с моим Xorg.2.log и подумал, нет ли путаницы с клавиатурой. Попробуйте добавить это в часть клавиатуры вашего файла xorg conf:

MatchProduct "Logitech HID compliant keyboard"

Это должно помешать X-серверу, например, изменить кнопки питания и кнопки сна. Сообщения о модели клавиатуры и раскладке в вашем файле журнала не отображались в моем файле журнала, например, в отношении кнопки питания и кнопки сна, и я вижу, где ваша клавиатура идентифицируется как клавиатура, указатель и мышь :

.
[    42.146] (II) event4  - Logitech HID compliant keyboard: is tagged by udev as: Keyboard Mouse Joystick

Возможно, раздел libinput «Игнорировать дубликаты» удаляет клавиатуру из-за мыши Keyboard/PixArt. Кроме того, я заметил, где у вас здесь было сообщение от systemd:

[    42.153] (II) systemd-logind: returning pre-existing fd for /dev/input/event4 13:68

Это не ответ, а лишь некоторые подсказки.Xserver завершится без устройств ввода, и я думаю, что они удаляются из-за дубликатов.

РЕДАКТИРОВАТЬ :Вот мой файл /etc/X11/xorg.conf.d/50 -keyboard.conf:

Section "InputClass"
  Identifier "ASUS laptop keyboard"
  MatchIsKeyboard "on"
  MatchProduct "AT Translated Set 2"
  Option "XkbModel" "asus_laptop"
  Option "XkbLayout" "us"
  Option "XkbOptions" "caps:none,terminate:ctrl_alt_bksp"
EndSection

EDIT2 :Теперь я вижу, где дубликаты сенсорной панели игнорируются, так что, возможно, мышь отличается. Ваша MatchIsKeyboard по-прежнему соответствует кнопке питания и кнопке сна, так что это нехорошо. Надеюсь, вы разберетесь с проблемой. Остальная часть вашего журнала похожа на мою для DISPLAY= :2, за исключением клавиатуры.

EDIT3 :Содержит ли ваш Xorg.2.log эти записи?

[    42.142] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 8)
[    42.142] (**) Option "xkb_model" "pc105"
[    42.142] (**) Option "xkb_layout" "pl"
[    42.143] (II) event1  - Sleep Button: is tagged by udev as: Keyboard
[    42.143] (II) event1  - Sleep Button: device is a keyboard

Этого нет в моем файле Xorg.2.log. Драйвер клавиатуры libinput обрабатывает множество вещей, поэтому редактирование файлов в /usr/share/X11/xorg.conf.d может работать неправильно и будет заменено при обновлении пакетов.

Проверьте файл журнала и убедитесь, что клавиатура совпадает. Теперь я думаю, что MatchProduct - это просто строка sub -, поэтому просто «Logitech» может быть лучше, если «совместимая клавиатура» не соответствует.

EDIT4 :Файлы /usr/share/X11/xorg.conf.d/ являются системными файлами, и вам действительно следует поместить свои собственные файлы конфигурации в /etc/X11/xorg.conf.d и просто создать каталог, если он не существует.

Я не уверен, что это является причиной вашей проблемы с DISPLAY= :2, если нормальный startx работает. Я думаю, что ваш сервер Xorg настроен неправильно, и это становится проблемой только при одновременном запуске двух серверов. В противном случае я не вижу проблемы с вашей информацией Xorg.2.log.

РЕДАКТИРОВАТЬ5:

Теперь у меня есть 4 X-сервера с одинаковыми настройками, и я могу переключаться на них с помощью Ctrl -alt F7 F8 F9 или F10.У меня нет идей, за исключением того, что следующие настройки могут быть полезны для запуска разных настроек на каждом из них, и, возможно, экспериментирование с этими настройками может также заставить ваши несколько X-серверов работать:

use: X [:<display>] [option]
-a #                   default pointer acceleration (factor)
-ac                    disable access control restrictions
-audit int             set audit trail level
-auth file             select authorization file
-br                    create root window with black background
+bs                    enable any backing store support
-bs                    disable any backing store support
-c                     turns off key-click
c #                    key-click volume (0-100)
-cc int                default color visual class
-nocursor              disable the cursor
-core                  generate core dump on fatal error
-displayfd fd          file descriptor to write display number to when ready to connect
-dpi int               screen resolution in dots per inch
-dpms                  disables VESA DPMS monitor control
-deferglyphs [none|all|16] defer loading of [no|all|16-bit] glyphs
-f #                   bell base (0-100)
-fc string             cursor font
-fn string             default font name
-fp string             default font path
-help                  prints message with these options
+iglx                  Allow creating indirect GLX contexts
-iglx                  Prohibit creating indirect GLX contexts (default)
-I                     ignore all remaining arguments
-ld int                limit data space to N Kb
-lf int                limit number of open files to N
-ls int                limit stack space to N Kb
-nolock                disable the locking mechanism
-maxclients n          set maximum number of clients (power of two)
-nolisten string       don't listen on protocol
-listen string         listen on protocol
-noreset               don't reset after last client exists
-background [none]     create root window with no background
-reset                 reset after last client exists
-p #                   screen-saver pattern duration (minutes)
-pn                    accept failure to listen on all ports
-nopn                  reject failure to listen on all ports
-r                     turns off auto-repeat
r                      turns on auto-repeat 
-render [default|mono|gray|color] set render color alloc policy
-retro                 start with classic stipple and cursor
-s #                   screen-saver timeout (minutes)
-seat string           seat to run on
-t #                   default pointer threshold (pixels/t)
-terminate             terminate at server reset
-to #                  connection time out
-tst                   disable testing extensions
ttyxx                  server started from init on /dev/ttyxx
v                      video blanking for screen-saver
-v                     screen-saver without video blanking
-wm                    WhenMapped default backing-store
-wr                    create root window with white background
-maxbigreqsize         set maximal bigrequest size 
+xinerama              Enable XINERAMA extension
-xinerama              Disable XINERAMA extension
-dumbSched             Disable smart scheduling and threaded input, enable old behavior
-schedInterval int     Set scheduler interval in msec
-sigstop               Enable SIGSTOP based startup
+extension name        Enable extension
-extension name        Disable extension
-query host-name       contact named host for XDMCP
-broadcast             broadcast for XDMCP
-multicast [addr [hops]] IPv6 multicast for XDMCP
-indirect host-name    contact named host for indirect XDMCP
-port port-num         UDP port number to send messages to
-from local-address    specify the local address to connect from
-once                  Terminate server after one session
-class display-class   specify display class to send in manage
-cookie xdm-auth-bits  specify the magic cookie for XDMCP
-displayID display-id  manufacturer display ID for request [+-]accessx [ timeout [ timeout_mask [ feedback [ options_mask] ] ] ] enable/disable accessx key sequences
-ardelay               set XKB autorepeat delay
-arinterval            set XKB autorepeat interval


Device Dependent Usage
-config file           specify a configuration file, relative to the xorg.conf search path, only root can use absolute
-configdir dir         specify a configuration directory, relative to the xorg.conf.d search path, only root can use absolute
-verbose [n]           verbose startup messages
-logverbose [n]        verbose log messages
-quiet                 minimal startup messages
-fbbpp n               set bpp for the framebuffer. Default: 8
-depth n               set colour depth. Default: 8
-gamma f               set gamma value (0.1 < f < 10.0) Default: 1.0
-rgamma f              set gamma value for red phase
-ggamma f              set gamma value for green phase
-bgamma f              set gamma value for blue phase
-weight nnn            set RGB weighting at 16 bpp.  Default: 565
-layout name           specify the ServerLayout section name
-screen name           specify the Screen section name
-keyboard name         specify the core keyboard InputDevice name
-pointer name          specify the core pointer InputDevice name
-nosilk                disable Silken Mouse
-flipPixels            swap default black/white Pixel values
-disableVidMode        disable mode adjustments with xvidtune
-allowNonLocalXvidtune allow xvidtune to be run as a non-local client
-allowMouseOpenFail    start server even if the mouse can't be initialized
-ignoreABI             make module ABI mismatches non-fatal
-isolateDevice bus_id  restrict device resets to bus_id (PCI only)
-version               show the server version
-showDefaultModulePath show the server default module path
-showDefaultLibPath    show the server default library path
-novtswitch            don't automatically switch VT at reset & exit
-sharevts              share VTs with another X server
vtXX                   use the specified VT number
-keeptty               don't detach controlling tty (for debugging only)
-masterfd <fd>         use the specified fd as the DRM master fd (not if setuid/gid)
0
17.03.2021, 12:06
1 ответ

Наконец-то удалось решить эту проблему. Никаких изменений в файле /etc/sudoers.d/ не требуется.

Изменил приведенный выше код, как показано ниже, и все заработало.

installDpkgSig := "export DEBIAN_FRONTEND=noninteractive && /usr/bin/sudo apt install -o Dpkg::Options::=--force-confold -y dpkg-sig"
executor.cmd = *exec.Command("bash", "-c", installDpkgSig)

По завершении сеанса bash DEBIAN _FRONTEND будет установлено по умолчанию.

1
18.03.2021, 22:25

Теги

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