如何从命令行向启动应用程序添加脚本?

Ano*_*pus 28 autostart startup-applications

我有一个shell脚本。我想将我的脚本配置为在启动期间自动运行。我知道如何从 GUI 执行此操作。但我想从终端做到这一点。我怎样才能做到这一点?

在初步研究中,我发现该文件需要移动到/etc/int.d/目录。但是这个操作需要sudo权限。我想在没有超级用户权限的情况下执行此操作。

我还发现有些文件下~/.config/autostart/有一些关于启动应用程序的设置。但我不知道如何编辑它们来实现这一点。

有人可以告诉我实现这一目标的确切程序吗?

Jac*_*ijm 27

如何从命令行设置启动启动器

就像您在问题中提到的那样,可以通过将启动器放置在登录时运行命令~/.config/autostart由于启动器仅用于启动脚本,因此您只需要创建的.desktop文件中的“基本”桌面条目关键字:关键字/行至少需要:

[Desktop Entry]
Name=name
Exec=command
Type=Application
Run Code Online (Sandbox Code Playgroud)

X-GNOME-Autostart-enabled=true如果您启用/禁用启动器的自动启动功能(X-GNOME-Autostart-enabled=true默认设置为),将自动添加(可选)行

有关必填字段的更多信息,您可以在此处找到。

示例脚本

要从命令行创建这样的启动器,您需要一个小脚本,它将启动器的名称和要运行的命令作为参数。下面是此类脚本的示例。

如果我使用以下命令运行它:

python3 '/path/to/script' 'Test' 'gedit'
Run Code Online (Sandbox Code Playgroud)

它创建了一个启动启动器,gedit在我登录时运行。
启动器也可以在 Dash > Startup Applications 中看到:

在此处输入图片说明

剧本

[Desktop Entry]
Name=name
Exec=command
Type=Application
Run Code Online (Sandbox Code Playgroud)

将其粘贴到一个空文件中,另存为set_startupscript.py,通过以下命令运行它:

python3 /path/to/set_startupscript.py '<name>' '<command>'
Run Code Online (Sandbox Code Playgroud)

它能做什么

  • 它在 中创建了一个基本的启动器(你不需要更多,运行脚本)~/.config/autostart,将名称和命令作为参数。
  • 如果同名的启动器已经存在于 中~/.config/autostart,它会打印一条消息:

    file exists, choose another name
    
    Run Code Online (Sandbox Code Playgroud)


Ano*_*pus 7

我找到了答案

cd 到~/.config/autostart/. 如果您没有名为autostart的文件夹,则使用 mkdir autostart 创建一个具有该名称的文件夹。

现在使用名称添加以下文件 yourScript.sh.desktop

[Desktop Entry]
Type=Application
Exec="/Your/location/to/theScript/yourScript.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=AnyNameYouWish
Name=AnyNameYouWish
Comment[en_IN]=AnyComment
Comment=AnyComment
Run Code Online (Sandbox Code Playgroud)

完毕!

  • 要在启动时运行脚本,这里的字段比需要的多:) (2认同)
  • 只有其中几个字段是真正需要的,如果您查看此站点:http://standards.freedesktop.org/desktop-entry-spec/latest/ar01s05.html 在“REQ”列中,您可以查看是否真的需要关键字。如果您有理由,我只会使用其他关键字。当你不从 Dash 运行启动器时,`Nodisplay`、`Hidden`、`Comment` 等都不起作用。 (2认同)
  • 你是对的!如果该行不在 `.desktop file` 中,默认值为 `true`,如果您从 Dash &gt; Startup Applications 禁用它,则会自动添加该行。我把它编辑成脚本。 (2认同)