Куда поместить скрипт, который должен выполняться один раз при графическом входе пользователя?

Перечисленные терминалы намекают на то, что такое поведение наблюдается в Linux: Подсказки находятся на странице руководства для wall (Solaris, например, отличается):

wall отображает сообщение, или содержимое файла, или иначе его стандартный ввод, на терминалы всех зарегистрированных в данный момент пользователей.

Некоторые сессии, такие как wdm, имеющие в начале данных utmp(5) ut_type символ ':', не получат сообщение от wall. Это сделано для того, чтобы избежать ошибок записи.

То есть, wall использует данные utmp, ищет используемые терминалы (т.е. вошедших в систему пользователей) и записывает на соответствующее device. Каждая строка в выводе w показывает (возможный) терминал, записанный терминалом в utmp-файл. Например, я подключен к серверу по ssh'd и запускаю screen, в то же время я вошел в консоль. Для полноты картины я запустил xterm, используя опцию -ls (login-shell). Вот вывод w:

$ w
 19:53:15 up  4:08,  5 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
tom      tty2                      19:48    5:11   0.04s  0.02s -tcsh
tom      pts/0    michener:S.0     15:51   13:18   0.35s  0.24s ssh -X thomas@b
tom      pts/2    michener:S.1     16:34    2.00s  0.14s  0.00s sh -c w
tom      pts/4    michener:S.3     15:52    3:59m  0.12s  0.00s /bin/sh /users/
tom      pts/3    localhost:10.0   19:53    7.00s  0.03s  0.03s -tcsh

и выполнение wall пишет на каждое из этих TTY устройств.

Однако, если терминал не записывает в файл utmp, он не будет указан в списке - и wall проигнорирует его.

Итак, некоторые программы могут иметь скомпилированную функцию, но не иметь привилегий для ее изменения. Поэтому некоторые программы запускаются с setgid для группы "utmp". Другие программы (такие как xterm - или gnome-terminal) могут использовать внешнюю программу, которая обновляет utmp от их имени.

В gnome-terminal эта функция была упразднена из-за того, что разработчики gnome считают, что (а) пользователи работают на локальной машине, где gdm обрабатывает вход в систему, и (б) поэтому нет различий между оболочками для входа в систему и оболочками без входа в систему. Это приводит к появлению некоторых интересных сообщений об ошибках:

1
19.09.2011, 16:41
2 ответа

Когда пользователь входит в графический режим, запускается предопределенная среда рабочего стола (Gnome 3 в вашем случае). Это программный пакет, который следует использовать для установки и настройки всего, что должно запускаться , когда пользователь входит в систему графически .


Сначала создайте сценарий, поместите его в какое-нибудь личное место, например ~ / scripts / или ~ / bin / , и сделайте исполняемым ( chmod + x script_path_and_name.sh ). Затем в меню Gnome Система выберите Настройки -> Программы запуска . Щелкните Добавить справа от списка, введите любое имя и укажите Command на только что созданный сценарий.

Я переводил все пункты меню обратно на английский с польского, поэтому, пожалуйста, поправьте меня, если я допустил там ошибку. (Компьютер моей девушки - единственный, на котором установлен Gnome :))

1
29.04.2021, 00:58

Если вы используете F15, ваш файл профиля

~/.bash_profile

вместо

~/.profile

Поэтому проверьте, существует ли этот файл, и отредактируйте его, добавив ваш скрипт

0
29.04.2021, 00:58

Теги

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