我有一个shell脚本。我想将脚本配置为在启动期间自动运行。我知道如何从GUI执行此操作。但是我想从终端执行此操作。我怎样才能做到这一点?
在初步研究中,我发现该文件需要移动到/etc/int.d/
目录中。但是此操作需要sudo权限。我想在没有超级用户权限的情况下执行此操作。
我还发现有些文件~/.config/autostart/
具有有关启动应用程序的设置。但是我不知道如何编辑它们来实现这一目标。
有人可以告诉我实现这一目标的确切程序吗?
就像您在问题中提到的那样,可以通过将启动器放在中来在登录时运行命令。~/.config/autostart
由于启动器仅用于启动脚本,因此在创建的.desktop
文件中只需要“基本”桌面条目关键字:至少需要:
[Desktop Entry]
Name=name
Exec=command
Type=Application
X-GNOME-Autostart-enabled=true
如果启用/禁用启动器的自动启动功能,则(可选)行将自动添加(X-GNOME-Autostart-enabled=true
默认设置为)
有关必填字段的更多信息,请参见此处。
要从命令行创建此类启动器,您将需要一个小脚本,该脚本将使用启动器的名称和命令作为参数运行。下面是此类脚本的示例。
如果我使用命令运行它:
python3 '/path/to/script' 'Test' 'gedit'
它创建一个启动启动器,gedit
在我登录时运行。
启动器在“ 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
,它会显示一条消息:
file exists, choose another name
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句