Я хочу запускать скрипт при входе в систему

Скомпилированный код — это просто (обычно довольно длинная )последовательность байтов. Если вы catтакой файл, терминал попытается отобразить символы с одинаковым значением байта в пределах ASCII/UTF8/UTF16. Это не удается для большинства комбинаций байтов, поэтому результат cat a.outвыглядит как тарабарщина.

Для просмотра двоичных значений в шестнадцатеричном формате

$ od -x a.out
0000000      facf    feed    0007    0100    0003    8000    0002    0000
0000020      000f    0000    04b0    0000    0085    0020    0000    0000
0000040      0019    0000    0048    0000    5f5f    4150    4547    455a
0000060      4f52    0000    0000    0000    0000    0000    0000    0000
0000100      0000    0000    0001    0000    0000    0000    0000    0000
...

или, если он есть в вашей системе,

$ hexdump -C a.out
00000000  cf fa ed fe 07 00 00 01  03 00 00 80 02 00 00 00  |................|
00000010  0f 00 00 00 b0 04 00 00  85 00 20 00 00 00 00 00  |...............|
00000020  19 00 00 00 48 00 00 00  5f 5f 50 41 47 45 5a 45  |....H...__PAGEZE|
00000030  52 4f 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |RO..............|
00000040  00 00 00 00 01 00 00 00  00 00 00 00 00 00 00 00  |................|
...
00000f90  00 00 00 41 53 ff 25 65  00 00 00 90 68 00 00 00  |...AS.%e....h...|
00000fa0  00 e9 e6 ff ff ff 48 65  6c 6c 6f 2c 20 57 6f 72  |......Hello, Wor|
00000fb0  6c 64 21 0a 00 00 00 00  01 00 00 00 1c 00 00 00  |ld!.............|
00000fc0  00 00 00 00 1c 00 00 00  00 00 00 00 1c 00 00 00  |................|
...
1
13.08.2020, 00:12
1 ответ

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

Я предполагаю, что вы используете X11, а не Wayland. Найдите файл Xsessionили xinitrcв /etc/X11/xinit/. Если у вас есть один, отредактируйте его, используя nanoили что-то еще, что плавает на вашей лодке, используя:

sudo nano /etc/X11/xinit/xinitrc

Например,

и либо добавьте туда содержимое вашего скрипта, если оно достаточно краткое, либо выполните свой скрипт оттуда, добавив:

source path/to/your/script.sh

Убедитесь, что #!/bin/shнаходится вверху как вашего скрипта, так и файла xinitrcили Xsession, и что файл является исполняемым, выполнив sudo chmod +x xinitrc, если у вас, например, xinitrc.

У меня есть xinitrcв моем домашнем каталоге, который я использую, так что, может быть, у вас тоже есть такой или вы можете создать его (? )Но тогда я не использую KDE, так что это может не сработать для вас. У меня также есть один в /etc/X11/xinit/, который я не редактирую.

Затем отредактируйте или создайте файл в /etc/sddm.conf, если он не существует, и добавьте в него следующее:

[X11]
SessionCommand=/etc/X11/xinit/xinitrc

для xinitrc. Может быть, вы могли бы указать его на один в вашем домашнем каталоге? Я недостаточно осведомлен, чтобы быть уверенным на 100%. Если уже есть блок [X11], просто добавьте к нему строку, не добавляйте второй блок [X11].

Этодолжнозапускать ваш скрипт после входа в систему с использованием SDDM, которыйобычнодиспетчер отображения KDE (с вашим именем пользователя и паролем при входе в систему ). Вы также можете использовать DisplayCommandвместо SessionCommand, а затем указать его на /etc/sddm/Xsetup, но он может не запуститься после выхода из системы и обратно, он запустится после запуска диспетчера дисплея (, то есть перезагрузки системы ). ], но я не знаю, действительно ли он перезапускается после входа в систему.

Если это не помогло, извините, вот документация, которую я прочитал, которая привела меня к решениям, которые я предоставил, которые вы также можете использовать, и я очень уверен, что вы найдете решение из них:

1
18.03.2021, 23:13

Теги

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