Answers:
不能保证图形显示管理器将读取经典启动文件。这在发行版之间以及在展示管理器之间发生了变化。但是,以下方法之一应该起作用。
使用桌面环境的本机方法来设置启动应用程序。详细信息将取决于您使用的DE,但是您可以创建一个运行命令的脚本并将其添加到启动应用程序列表中。例如,在我的系统(Cinnamon)上,您可以通过“系统设置” =>“启动应用程序”来执行此操作。
使用~/.xprofile
,这至少由GDM,LDM,LightDM和LXDM登录管理器提供。
如果以上两种方法均无效,请尝试将命令添加到~/.profile
:这是登录Shell的主要初始化文件,并且在登录时也会被某些图形Shell读取。
正如@derobert在评论中指出的那样,您还可以使用免费的桌面标准:
自动启动目录是$ XDG_CONFIG_DIRS / autostart,根据“桌面基本目录规范”中的“参考此规范”部分定义。
如果相同的文件名位于多个自动启动目录下,则仅应使用最重要目录下的文件。
示例:如果未设置$ XDG_CONFIG_HOME,则用户主目录中的自动启动目录为〜/ .config / autostart /
示例:如果未设置$ XDG_CONFIG_DIRS,则系统范围的自动启动目录为/ etc / xdg / autostart /
示例:如果未设置$ XDG_CONFIG_HOME和$ XDG_CONFIG_DIRS并且两个文件/etc/xdg/autostart/foo.desktop和〜/ .config / autostart / foo.desktop存在,则仅文件〜/ .config / autostart / foo。将使用桌面,因为〜/ .config / autostart /比/ etc / xdg / autostart /更重要
该~/.bashrc
是完全不相干的在这里,它只能通过交互式非登录shell读取,因此是在登录shell忽略,图形或没有。
~/.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 /手册页/耐寒/ 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,如下所示:
session optional pam_ssh.so
session required pam_limits.so
session required pam_env.so
session optional pam_mktemp.so
session required pam_unix.so
session optional pam_exec.so /usr/local/bin/my_prog
session optional pam_permit.so
/usr/local/bin/my_prog
成功登录用户后,在哪里运行任意程序。
pam
配置的示例,因为这并非易事。
根据此主题:登录后自动运行命令?
您拥有.bashrc
(不是您所需要的)解决方案和启动应用程序的解决方案。我引用Daniel S .:
gnome-session-properties
可用于配置启动应用程序。另外,如果您希望应用程序在系统引导时运行,则可以将以下规则添加到crontab中(使用来编辑crontab
crontab -e
):@reboot /run/this/program/at/boot >/dev/null 2>&1