如何在登录时自动启动应用程序?


348

登录后如何使应用程序自动启动?

Answers:


410

14.04及更高版本

  • 打开破折号并搜索“启动应用程序”

    在此处输入图片说明

  • 现在单击添加并提供命令以运行该应用程序。如果已安装(请参阅下文)或如本问题所示,可以在主菜单中找到

    在此处输入图片说明


使用主菜单(alacarte 安装alacarte

  • 首先打开程序“主菜单”(Menu在Dash中键入)

    在此处输入图片说明

  • 现在,选择要添加到启动程序,然后单击属性。

    在此处输入图片说明

  • 现在记下该程序的命令。

    在此处输入图片说明


非GUI方法

高级用户可能需要在~/.config/autostart用户登录后放入.desktop文件来运行应用程序。这可能具有以下内容:

[Desktop Entry]
Type=Application
Name=<Name of application as displayed>
Exec=<command to execute>
Icon=<full path to icon>
Comment=<optinal comments>
X-GNOME-Autostart-enabled=true

20
“非GUI方法”部分很有用,我正在搜索该文件夹!
Pisu

10
gnome-session-properties如果您在菜单中(例如,在Gnome Shell中)找不到,可以从ALT + F2弹出“启动应用程序首选项”对话框
mtdevans 2013年

1
在用户登录之前,有什么方法可以运行应用程序吗?
2014年

1
@ abhishah901:感谢您的通知,更新了答案。
塔卡特2015年

4
请注意,如果采用非GUI方法,则文件必须以.desktop结尾,否则它将被忽略。
leo-the-manic


20

Unity和Xfce4都有GUI程序,可让您控制启动应用程序。

对于Unity:

在此处输入图片说明

在此处输入图片说明

对于Xfce4,启动工具可在“设置”>“会话和启动”中使用

在此处输入图片说明 图片由Xubuntu Geek xubuntugeek提供

如果GUI不是您想要的,而您想要的是更高级的控制,则可以将.desktop文件放在~/.config/autostart/Xfce4 的目录中,并将.desktop文件放入~/.config/autostartUnity以在用户登录后运行应用程序。

检查此问题以获取有关创建.desktop文件的更多帮助:

还要注意,如果您希望启动应用程序仅在XFCE中启动,而不在Unity中启动,则必须将该行OnlyShowIn=XFCE放入.desktop文件中。它OnlyShowIn=Unity仅适用于Unity应用程序。


从您的回答中我得到的是,您将.desktop文件都放入了 ~/.config/autostart/
Eduard Florinescu 2012年

请如果您内心知道该GUI程序是什么,对于Unity来说Startup Applications(容易搜索)对于xfce是什么?
爱德华·弗洛里内斯库

20

从Dash启动启动应用程序

在此处输入图片说明

单击启动应用程序

在此处输入图片说明

然后点击添加

在此处输入图片说明

键入程序的名称,浏览到命令,然后单击“添加”。

另外:这是我用来自动启动Guake的示例-Yakuake的Gnome版本:

将其放在“命令”框中。

sh -c "sleep 120s; guake"

这会自动启动guake,但要等2分钟再这样做。您可以将120更改为任意值。

编辑:

对于14.04和16.04:

在Dash中键入Startup,然后在其中运行Startup Application表单

在此处输入图片说明

然后按照其余步骤进行操作。

(请注意,如果您使用另一种语言使用ubuntu,则“启动”可能找不到正确的程序。请尝试另一种使用您的语言进行的搜索)


在Ubuntu 14.04中,我在右上角的系统菜单中看不到那些选项。
user29020 2014年

2
在14.04中,在破折号中键入Startup,然后可以从那里运行它。查看答案中的其他内容。谢谢
米奇

9

您可能想通过以下方式从CLI启动它:

$ gnome-session-properties

(以防万一您没有运行GNOME;)


1
我没有其他方法可以找到$#@!窗口。我的机器上没有上述菜单项,但是此命令将其正确启动。
Reb.Cabin '17

6

您可以使用GNOME启动应用程序。 在此处输入图片说明

单击添加按钮,然后添加完整命令以打开所需的应用程序。如果您不知道命令的路径,则可以执行

哪个name_of_commmand


6

看一下$ XDG_CONFIG_DIRS / autostart目录:

$ echo $XDG_CONFIG_DIRS/autostart
/etc/xdg/xdg-kde-plasma:/usr/share/upstart/xdg:/etc/xdg/autostart

该示例中有3个目录。我想修剪鹦鹉螺条目

sudo rm /etc/xdg/autostart/nautilus-autostart.desktop

否则,如果可以添加它,则创建一个桌面条目文件:sudo touch /etc/xdg/autostart/my-shell-autostart.desktop添加以下内容:

[Desktop Entry]
Name=foo
Terminal=false
Exec=/path/shell.sh
Type=Application
Icon=/path/icon.png
Categories=Utility;

$XDG_CONFIG_DIRS/autostart在冒号分隔的目录的最后一个目录中添加“自动启动”。在其他目录下也可能有自动启动目录,用冒号分隔。实际上,目录是按优先顺序排序的。此外,如果$XDG_CONFIG_DIRS为空或未设置,则配置文件的基本目录为/ etc / xdg。请参阅参考资料
jarno

并且用户特定的自动启动文件应置于$XDG_CONFIG_HOME/autostart默认值$HOME/.config/autostart
jarno

4

对于Ubuntu 12.04,

  1. 从右上方菜单启动启动应用程序

    在此处输入图片说明

  2. 无需单击添加,打开Dash并键入要在启动时运行的应用程序,例如Skype

    在此处输入图片说明

  3. 将应用程序拖到“启动应用程序”窗口。如果Dash窗口太大而无法将应用程序拖到外面,请使用左上角的“还原窗口”按钮(如上图所示)。最终列表如下所示:

    http://imgur.com/G60wbOJ


好吧,第1步不适用于Ubuntu 16.10。但是将应用程序拖放到自动启动窗口的可能性确实很大。
eDeviser

4

还将BATCH FILE放入启动应用程序中,以便在用户登录后运行...。

gnome-terminal  -e  "/batch-path/batch-name.sh" 
  • gnome-terminal:使用当前用户权限登录后打开终端
  • -e:设置终端执行批处理文件
  • /batch-path/batch-name.sh:是批次的完整路径和全名

还记得文件批处理权限时,将标志“ 允许将文件作为程序执行”设置为ON


4

带有UNITY说明的Ubuntu 13.10

使用需要的命令来执行此操作sudo有些棘手。

就我而言,我想使用该命令禁用PSMOUSE驱动程序,sudo rmmod psmouse以防止随机出现的鼠标单击问题。有关此问题的更多信息,请参见处理Linux中的鼠标和触摸板冻结。我厌倦了每次开机都输入它。

在我的安装中,该~/.config文件夹没有自动启动子文件夹,因此我创建了一个。这使我的启动应用程序首选项设置得以保存。

为了切换隐藏的启动应用程序的可见性,可以使用以下命令。

显示给他们:

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

隐藏它们:

sudo sed -i 's/NoDisplay=false/NoDisplay=true/g' /etc/xdg/autostart/*.desktop

按照上面“ 启动应用程序参考”窗口中的文章配置命令。

Name:    Fix Mouse
Command: sudo rmmod psmouse
Comment: Fix Mouse

然后,您必须使用来编辑/ etc / sudoers文件sudo visudo。添加一行,其中包含以下信息:

username ALL=(ALL) NOPASSWD: /sbin/rmmod

您必须在以%admin开头的行下方输入此行。我将行添加到文件末尾。重要的是要使用sudo visudo此文件进行编辑,因为犯错将使您无法执行任何sudo命令。如果发生这种情况,请以恢复模式启动并撤消您的编辑,然后尝试使用sudo visudo

注意
最初,我尝试使用bash脚本间接运行命令,但这没有用。我必须sudo rmmod psmouse直接放在“ 编辑启动程序”窗口中。


2

对于执行此操作的简单,可移植的方法,可以使用Cron。运行crontab -e以编辑用户的crontab;添加@reboot commandcommand在每次启动时运行。


2

您可以在“ 系统/首选项/启动应用程序”首选项窗口中使用该功能来记住当前正在运行的应用程序。哪个(启用时)将“记住”您正在使用的所有程序,并在重新引导后或一天中第一次启动系统时重新打开它们。

当您没有足够的时间记录上次执行的操作并且希望上次运行的应用程序打开时,这非常有用。

如果要从此功能中删除应用程序,只需将其关闭并转到该功能,然后按“记住当前正在运行的应用程序”,以刷新下次将打开的程序列表。

在此处输入图片说明


我对此不满意的唯一一件事是,当您的/我的无线设备处于活动状态时,其加载速度比我的浏览器慢。无线上网后,每个标签都需要重新加载。
Rinzwind

好点子。这就是为什么在打开浏览器时不保存该首选项的原因:) Docky拥有带有图标的浏览器控件。但是您的好点!谢谢。
2011年

1

在Unity Dash中键入“启动应用程序”,它将列出您可以单击以打开的应用程序。打开它之后,您可以在其中添加您的应用程序。


0

Alt+ F2,然后gnome-help ghelp:user-guide?gosstartsession-2

单击运行,等待一秒钟,然后按照说明进行操作。


很酷,我知道要添加的部分,但不知道命令...所以我要用谷歌搜索吗?还是我应该按alt + f2然后输入程序名称...如果找到它,我会说在终端中运行...以显示命令?

@Bob,您要在启动时运行哪个应用程序?
Oxwivi 2011年

0

这是“启动应用程序”的陷阱。我需要在启动时运行以下命令,以激活我定义的自定义键重新映射:

xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY

像上面的其他答案一样,我将其放入“启动应用程序”中,但此方法无效。

解决方案:通过以下方式将其放入“启动应用程序”中:

bash -c "xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY"

(我不知道为什么。我通过反复试验得出了结论。)

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.