В настольной системе Linux я хочу выполнить команду, когда пользователь входит в систему.
Прочитав несколько других постов, я попытался вставить команду, ~/.bashrc
но безуспешно. Более того, система использует графический интерфейс для входа пользователя, поэтому команда не должна быть связана с запуском оболочки.
Я также попытался добавить команду к одному из скриптов, содержащихся в нем, /etc/profile.d
но безрезультатно.
Есть ли другой способ сделать это? Любой файл, который система читает после входа в систему?
Ответы:
Нет гарантии, что менеджер графического отображения будет читать классические файлы запуска. Это меняется между дистрибутивами и между менеджерами отображения. Одно из следующих должно работать, хотя.
Используйте собственный метод среды рабочего стола для настройки запуска приложений. Детали будут зависеть от используемой вами DE, но вы можете создать скрипт, который запускает вашу команду, и добавить его в список запускаемых приложений. Например, в моей системе (Cinnamon) вы можете сделать это через «Системные настройки» => «Запуск приложений».
Использование
~/.xprofile
, это добыт по крайней мере, GDM, МЖК, LightDM и LXDM менеджеров входа в систему .Если ничего из вышеперечисленного не сработало, попробуйте добавить команду в
~/.profile
: Это основной файл инициализации для оболочек входа в систему и также читается некоторыми графическими оболочками при входе в систему.Как отметил @derobert в комментариях, вы также можете использовать бесплатные стандарты рабочего стола :
Здесь
~/.bashrc
это совершенно не имеет значения, оно читается только интерактивными оболочками, не входящими в систему, поэтому игнорируется в графических оболочках или нет.источник
~/.config/autostart
и/etc/xdg/autostart/
какие из них являются стандартными в соответствии со спецификацией автозапуска приложения для настольного компьютера . А также/etc/X11/Xsession.d
и~/.xsession
.Другой вариант - использовать pam - это даст вам точный способ определения действий при входе в систему.
Для общего действия вы можете положиться на pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ). Однако, если вам нужно выполнить более конкретное действие безопасным способом, могут существовать более специализированные модули pam, которые лучше подойдут, такие как обычно используемый pam_mount (для монтирования при входе в систему - http: //manpages.ubuntu. com / manpages / hardy / man8 / pam_mount.8.html ) или pam_echo (для произвольных сообщений пользователям - http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).
В целом, pam - это очень аккуратная система для настройки логинов, поэтому вы можете захотеть взглянуть на нее немного больше, вместо того чтобы полагаться на потенциально небезопасные сценарии, как предлагали другие.
пример
Учитывая довольно типичный /etc/pam.d/system-auth, мы можем использовать pam_exec после входа в систему следующим образом:
где
/usr/local/bin/my_prog
- произвольная программа, запускаемая после успешного входа пользователя.источник
pam
конфигурацию, поскольку это нетривиально.Согласно этой теме: Запустить команду автоматически после входа в систему?
У вас есть решение
.bashrc
(не то, что вам нужно) и решение для запуска приложений. Я цитирую Дэниела С .:источник