当前位置: 首页>>技术教程>>正文


每次登录时如何制作程序auto-start?

, ,

问题描述

我经常需要启动几个我每次启动计算机时使用的程序。我该如何做到这一点,以便每当我登录程序自动启动?

最佳解决方案

为了让程序从Ubuntu开始:

  • 如果您使用的是Unity,请搜索程序Startup
    Applications

  • 如果您使用的是Ubuntu Classic,它位于“开始菜单”>首选项>启动应用程序。


为了让Ubuntu在关机时记住正在运行的应用程序:

  1. 打开一个终端,然后运行gconf-editor

  2. 导航到/apps /gnome-session /options。

    login,autostart,ubuntu

  3. 启用选项: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”:

login,autostart,ubuntu

14.04(Unity)及更高版本

我们可以搜索”startup applications”的Dash

login,autostart,ubuntu

或者我们可以使用终端从终端运行启动首选项

gnome-session-properties

这将打开一个窗口,我们可以看到所有将在启动时运行的已安装应用程序。勾选或取消选中那里的应用程序或选择”Add”添加新的应用程序:

login,autostart,ubuntu

如果我们知道运行该应用程序的命令,只需在”Command”行中输入。我们也可以在这里添加一个可选的”Comment”。

如果我们不知道命令,我们可以选择”Browse…”我们的文件系统安装应用程序。许多默认应用程序被发现在/usr/share/application中:

login,autostart,ubuntu

选择要添加到自动启动的应用程序。

命令行或程序方法

与上面的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

login,autostart,ubuntu

  • 现在您可以通过单击添加来添加应用程序,

login,autostart,ubuntu

  • 并且添加你想在启动时运行的应用程序/脚本,

login,autostart,ubuntu

  • 或者,您可以通过将您希望添加的启动程序从“应用程序”菜单拖到“启动应用程序”屏幕来添加应用程序。

第五种方案

另一个可能更简单的选项是进入菜单系统/首选项/启动应用程序,然后选择”Options”选项卡并勾选“在注销时自动记住正在运行的应用程序”

login,autostart,ubuntu

这将启动您注销时运行的任何应用程序。

第六种方案

没有答案(直到现在)给出了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将针对任何日志记录用户运行,包括rootubuntuxubuntu(用于定制Live分发桌面)

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/896.html,未经允许,请勿转载。