登录Ubuntu时如何自动执行Shell脚本


15

登录后如何使脚本自动执行?不是在机器启动时(不是针对所有用户),而是仅当我(或具有脚本的任何特定用户)通过GNOME UI登录时。

从其他地方看,我认为它.bash_profile在我的主目录中,但是对我来说没有任何作用。当我在终端窗口中通过键入手动执行它时,~/.bash_profile它可以工作,但是登录后它不会自动运行。

我正在运行Ubuntu 11.04。我的.bash_profile的文件许可权为-rwx------。在我今天创建它之前,我的主目录中不存在.bash_profile。

我似乎记得较早版本的Linux,.profile每个用户都有一个文件,但这也不起作用。

怎么做?我是否需要配置其他内容才能使.bash_profile运行?还是按用户登录脚本需要在其他文件中?


每次打开bash终端时,都会加载.bash_profile,.profile和.bashrc(这是ubuntu实际使用的那个)。因此,实际上,我不确定如果您仅登录GDM就会加载它们。
Juan Sebastian Totero 2011年

发布您的Ubuntu版本可能会有所帮助。在Ubuntu 10.10中,.bashrc “对我
Vlueboy 2011年

登录到GUI或外壳程序时是什么意思?
Flimzy 2011年

bash在启动新Shell时会加载它们,因此只有在打开终端窗口或登录虚拟终端时才会加载它们,而在登录Gnome(GDM)时不会加载它们。
shiftycow 2011年

正如我在原始问题中提到的,我正在使用Ubuntu 11.04。
Mike Rowave 2011年

Answers:


11

您只需将以下命令添加到“系统”>“首选项”>“启动应用程序”中:

bash /full/path/to/your/script.sh

这应该够了吧 ;)


您知道吗,我之前做过,但是没有用……除了我没有在脚本路径之前写“ bash”!稍后我将尝试使用bash。出于好奇,当您通过GUI将某些内容输入启动应用程序时,该文件在哪个文件中注册?
Mike Rowave 2011年

启动程序应在/etc/xdg/autostart
shiftycow 2011年

添加bash /home/myusername/scriptname到“启动应用程序”的工作!谢谢。但是,这可能是特定于Ubuntu上的GNOME的原因,这就是为什么我想知道“启动应用程序”菜单项中的条目在哪里注册的原因,因为在其他现代版本的Linux中,该可能性更大。
Mike Rowave 2011年

2
/etc/xdg/autostart似乎是系统范围的文件,并非特定于用户。
Mike Rowave 2011年

为Ubuntu的后续版本见askubuntu.com/questions/159887/...
TooTone

8

因此,基本上,按照nodiscc的建议,创建一个桌面启动器:〜/ .config / autostart / script.desktop,其中包含以下内容:

[Desktop Entry]
Type=Application
Name=Autostart Script
Exec=autostart
Icon=system-run
X-GNOME-Autostart-enabled=true

然后使用您的bash内容创建自动启动脚本:〜/ bin / autostart

#!/bin/bash
# Execute bash script below

确保〜/ bin / autostart是可执行的


5

您可以在crontab中添加一行-

crontab -e

然后将此行添加到打开的文件中:

@reboot /path/to/your/cool/script

这将在重新引导时运行脚本。有关更多详细信息,请参见man crontab


我不知道为什么,但我不能执行.SH在“启动应用程序”,因此现在做的easyest方式文件,是的cron
阿尔伯特加泰罗尼亚语


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.