问题描述
我经常需要启动几个我每次启动计算机时使用的程序。我该如何做到这一点,以便每当我登录程序自动启动?
最佳解决方案
为了让程序从Ubuntu开始:
-
如果您使用的是Unity,请搜索程序
Startup
。
Applications -
如果您使用的是Ubuntu Classic,它位于“开始菜单”>首选项>启动应用程序。
为了让Ubuntu在关机时记住正在运行的应用程序:
-
打开一个终端,然后运行
gconf-editor
。 -
导航到/apps /gnome-session /options。
-
启用选项:auto_save_session。
(注意:这可能会降低系统启动速度,并未经过全面测试。)
次佳解决方案
用户定义的会话让应用程序在登录后启动
登录后自动启动应用程序的另一种方法是定义用户定义的会话。这对不同的任务使用不同的会话是有好处的,每个任务都加载了不同的应用程序。
为此,我们在/usr/share/xsessions
中以root身份创建一个custom.desktop
文件,其中包含以下内容(对于GNOME /GDM):
[Desktop Entry]
Name=Marco's Crowded Session
Comment=Custom ~/.xsession script
Exec=/home/username/.xsession
X-Ubuntu-Gettext-Domain=gdm
使用任何你喜欢的会话名称,并用你的名字替换username
。
这将在登录时在HOME目录中运行脚本.xsession
,我们可以在登录后放入任何我们需要启动的应用程序。
该脚本需要按照.desktop文件中的定义进行命名,即给定示例中的~/.xsession
需要变为可执行文件,并且可能具有与此类似的内容:
#! /bin/bash
my-important-app [options] &
second-app [options] &
[...] # add other applications
gnome-session [options]
可以省略gnome-session的选项来加载默认会话。例如, --session=classic-gnome
作为在11.04中运行Classic GNOME Desktop的选项。
下次我们登录时,除了gnome-session(或您选择从此处启动的任何其他桌面管理器)的应用程序之外,我们还可以选择启动“Marco的拥挤会话”,同时运行脚本的所有应用程序。
启动其他桌面管理器
要启动另一台已安装的桌面管理器,请将~/.xsession
脚本的最后一行替换为以下内容:
-
用于标准桌面的
gnome-session --session=ubuntu
(在11.04中使用Unity)。 -
适用于传统GNOME桌面的
gnome-session --session=classic-gnome
。 -
适用于KDE桌面管理器的
startkde
。 -
用于XFCE的
startxfce4
,或运行Xubuntu时。
第三种解决方案
12.04(统一)
通过打开顶部面板右侧的菜单条目,我们可以将应用程序添加到”Startup Applications”:
14.04(Unity)及更高版本
我们可以搜索”startup applications”的Dash
或者我们可以使用终端从终端运行启动首选项
gnome-session-properties
这将打开一个窗口,我们可以看到所有将在启动时运行的已安装应用程序。勾选或取消选中那里的应用程序或选择”Add”添加新的应用程序:
如果我们知道运行该应用程序的命令,只需在”Command”行中输入。我们也可以在这里添加一个可选的”Comment”。
如果我们不知道命令,我们可以选择”Browse…”我们的文件系统安装应用程序。许多默认应用程序被发现在/usr/share/application
中:
选择要添加到自动启动的应用程序。
命令行或程序方法
与上面的GUI解决方案类似,我们可以手动将.desktop
文件添加到~/.config/autostart
。该文件的内容可能如下所示:
[Desktop Entry]
Type=Application
Exec=</path/to/binary or command to execute>
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=<Name_to_be_displayed>
Comment=<optional comment>
请注意,在vanilla安装中,目录~/.config/autostart
可能尚不存在。我们需要先创建它,然后才能以编程方式访问它。
第四种方案
如果您使用GNOME Desktop Environment,那么这很容易完成。
-
去
System>Preferences>Startup Applications
,
-
现在您可以通过单击添加来添加应用程序,
-
并且添加你想在启动时运行的应用程序/脚本,
-
或者,您可以通过将您希望添加的启动程序从“应用程序”菜单拖到“启动应用程序”屏幕来添加应用程序。
第五种方案
另一个可能更简单的选项是进入菜单系统/首选项/启动应用程序,然后选择”Options”选项卡并勾选“在注销时自动记住正在运行的应用程序”
这将启动您注销时运行的任何应用程序。
第六种方案
没有答案(直到现在)给出了user-independent解决方案。
根据this thread,为整个操作系统添加一些自动运行程序(命名为桌面条目)的正确方法是将其作为.desktop
文件添加到此处:
/etc/xdg/autostart
.desktop
文件示例:
[Desktop Entry]
Name=MyScript
GenericName=A descriptive name
Comment=Some description about your script
Exec=/path/to/my/script.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true
似乎没有必要chmod
它可执行的权限。 Exec
将针对任何日志记录用户运行,包括root
,ubuntu
或xubuntu
(用于定制Live分发桌面)