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


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

,

问题描述

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

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

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

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

最佳答案

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

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

[Desktop Entry]
Name=name
Exec=command
Type=Application

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

有关必填字段的更多信息,您可以找到 here

示例脚本

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

如果我用命令运行它:

python3 '/path/to/script' 'Test' 'gedit'

它创建一个启动启动器,在我登录时运行 gedit。 \n启动器在 Dash 中也可见 >启动应用程序:

剧本

#!/usr/bin/env python3
import os
import sys
home = os.environ["HOME"]

name = sys.argv[1]; command = sys.argv[2]

launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"]
dr = home+"/.config/autostart/"
if not os.path.exists(dr):
    os.makedirs(dr)
file = dr+name.lower()+".desktop"

if not os.path.exists(file):
    with open(file, "wt") as out:     
        for l in launcher:
            l = l+name if l == "Name=" else l
            l = l+command if l == "Exec=" else l
            out.write(l+"\n")
else:
    print("file exists, choose another name")

粘贴到一个空文件中,保存为 set_startupscript.py ,通过命令运行:

python3 /path/to/set_startupscript.py '<name>' '<command>'

它能做什么

  • 它在 ~/.config/autostart 中创建一个基本启动器(您不需要更多,运行脚本),将名称和命令作为参数。

  • 如果 ~/.config/autostart 中已经存在同名的启动器,它会打印一条消息:

    \n

    file exists, choose another name\n

次佳答案

我找到了答案

光盘到 ~/.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

完毕!

参考资料

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