1. 通过.desktop方式
autostart 中.desktop 配置文件
1.1 用户级自启动
登录后才可以启动服务。
- 可视化配置:在ubuntu自带的可视化步调来配置,就是StartupApplications,它在启动台中可以找到。
- 在ubuntu下目录是 ~/.config/autostart 添加配置文件
1.2配置文件解析
重要参数:
- Type:定义条目的类型。对于应用步调,通常设置为 Application。
- Exec:定义启动应用步调时要执行的下令或脚本。
- Name:应用步调的名称。
- Comment:关于应用步调的简短描述或注释。
- Icon:应用步调的图标路径。
- Terminal:假如设置为 true,则应用步调将在终端窗口中运行。
- Categories:定义应用步调所属的种别,用于在应用步调菜单中构造应用步调。
- Hidden:假如设置为 true,则应用步调不会在应用步调菜单中表现。
- NoDisplay:假如设置为 true,则条目不会在桌面情况的应用步调菜单中表现,但可以通过其他方式(如下令行)启动。
- X-GNOME-Autostart-enabled:这是一个非标准的键,但在许多GNOME桌面情况中利用,用于指示应用步调是否应在登录时自动启动。设置为 true 以启用自动启动。
其他参数:
- Version:指定 .desktop 文件遵照的 Desktop Entry 文件标准版本。
- GenericName:应用步调的通用名称,用于在应用步调菜单中提供更广泛的描述。
- MimeType:定义与该应用步调相关联的MIME类型。这通常用于文件关联,即当用户双击某种类型的文件时,自动启动这个应用步调。
- Keywords:用于搜刮和辨认应用步调的关键词列表。
- StartupNotify:假如设置为 true,则系统会表现启动通知,告知用户应用步调正在启动。
- StartupWMClass:指定窗口管理器怎样辨认和分组应用步调的实例。这对于确保应用步调窗口在任务栏或窗口列表中正确表现和分组很有用。
- TryExec:指定一个下令或脚本,用于检查应用步调是否可以运行。假云云下令或脚本不存在或无法执行,则 .desktop 文件可能被视为无效,并且应用步调可能不会在菜单中表现。
- OnlyShowIn 和 NotShowIn:这些参数用于定义在哪些桌面情况或菜单中表现应用步调。OnlyShowIn 列出应该表现此条目的桌面情况,而 NotShowIn 列出不应表现此条目的桌面情况。
- Actions:定义应用步调可以执行的一组动作或下令。每个动作通常有自己的 [Desktop Action 名称] 部分,此中包含 Exec、Name 和其他相关参数。
- [Desktop Entry]
- Type=Application
- Name=My Custom App
- Comment=This is my custom application
- Exec=/path/to/your/app
- Icon=/path/to/icon.png
- Terminal=false
- Categories=Utility;Application;
- StartupNotify=true
- StartupWMClass=my-custom-app
- Keywords=custom;utility;tool
- MimeType=application/x-my-custom-app-file;
- TryExec=/path/to/your/app
- OnlyShowIn=GNOME;XFCE;
- Actions=OpenNewWindow;
-
- [Desktop Action OpenNewWindow]
- Name=Open New Window
- Exec=/path/to/your/app --new-window
复制代码 在这个示例中,除了之前提到的参数外,还添加了 StartupNotify、StartupWMClass、Keywords、MimeType、TryExec 和 Actions 等参数。每个 [Desktop Action] 部分定义了一个新动作,这里定义了一个名为 "OpenNewWindow" 的动作,当用户在应用步调菜单中选择这个动作时,会执行指定的 Exec 下令。
- [Desktop Entry]
- Type=Application
- Exec=/path/to/your/app
- Name=My Custom App
- Comment=This is my custom application that starts automatically on login
- Icon=/path/to/icon.png
- Terminal=false
- Categories=Utility;Application;
- Hidden=false
- NoDisplay=false
- X-GNOME-Autostart-enabled=true
复制代码
- Exec 参数指向了应用步调的可执行文件。
- Name 和 Comment 参数分别定义了应用步调的名称和描述。
- Icon 参数指向了应用步调的图标文件。
- Terminal 设置为 false,表示应用步调不在终端窗口中运行。
- Categories 定义了应用步调的种别,这里将其归类为“Utility”和“Application”。
- Hidden 和 NoDisplay 均设置为 false,表示应用步调在应用步调菜单中可见。
- X-GNOME-Autostart-enabled 设置为 true,表示该应用步调将在登录时自动启动。
请留意,.desktop 文件的参数可能因桌面情况的不同而有所差异。上述示例适用于基于GNOME的桌面情况,如Ubuntu的默认桌面情况。假如你利用的是其他桌面情况,可能必要查阅该情况的文档以获取正确的参数列表和含义。
重点:
Exec=下可以配置情况变量,例如定义日志输出位置,之前发现启动步调后日志为输出到相对目录下。
Exec=env LOG_PATH=/path/to/your/log/directory /path/to/your/app在你的应用步调代码中,你可以读取这个情况变量来确定日志文件的路径。
在 .desktop 文件的 Exec 字段中,你可以利用各种情况参数来配置应用步调的启动情况。虽然情况参数本身并不是由 .desktop 文件规范定义的,而是由 Unix 和 Linux 的 shell 情况提供的,但以下是一些常见的情况参数示例,你可以在 Exec 字段中利用它们:
系统和情况变量
- $HOME:当前用户的主目录。
- $USER:当前用户的用户名。
- $DISPLAY:当前利用的 X 表现器的名称。
- $PATH:包含可执行文件搜刮路径的情况变量。
- LANG∗∗和∗∗LANGUAGE:定义当前的语言情况。
自定义情况变量
你可以在 Exec 字段中直接设置自定义的情况变量,例如:
- Exec=env MY_CUSTOM_VAR=value /path/to/your/app
复制代码 在这个例子中,MY_CUSTOM_VAR 是一个自定义的情况变量,其值为 value。应用步调可以通过适当的方式(如利用 getenv 函数)来读取这个情况变量的值。
利用现有的情况变量
你也可以在 Exec 字段中引用已经存在的情况变量,例如:
- Exec=/path/to/your/app --config=$HOME/.config/myapp/config.ini
复制代码 在这个例子中,$HOME 情况变量被用来构建配置文件的完整路径。
组合多个情况变量
你还可以组合多个情况变量来构建下令或参数,例如:
- Exec=env MY_DIR=$HOME/myapp /path/to/your/app --data-dir=$MY_DIR/data
复制代码 在这个例子中,我们起首设置了一个名为 MY_DIR 的情况变量,然后在同一个 Exec 字段中引用了它。
留意事项
- 安全性:在利用情况变量时,要留意安全性问题。确保不要将敏感信息(如密码或私钥)作为情况变量通报,除非你确定如许做是安全的。
- 引号处理:假如情况变量的值包含空格或特殊字符,你可能必要利用引号来确保它们被正确解析。例如:MY_VAR="value with spaces"。
- 通报多个参数:假如必要通报多个情况变量,可以利用 env 下令来设置它们,如上面示例所示。也可以直接在 Exec 字段中利用多个赋值表达式,用分号分隔。
系统级三个目录的区别
/etc/xdg/autostart:
这个目任命于添加图形界面下的系统级自启动步调。通常,在这里放置的是以.desktop为后缀的文件,
这些文件指定了要启动的步调和相关设置。当图形界面启动时,会自动运行这些步调。
/etc/init.d:
这个目录包含了系统启动时必要的脚本。这些脚本通常以shell脚本的情势存在,用于启动或停止系统服务。
不过,要留意的是,自Ubuntu 15.04版本开始,/etc/init.d目录已不再被保举利用,而是被systemd服务替代。
/etc/rc.local:
这个文件是一个在系统启动时执行的shell脚本。可以将必要在系统启动时运行的下令或步调添加到这个文件中。
不过,同样必要留意的是,在某些新版本的Ubuntu中,/etc/rc.local文件可能默认不存在,必要手动创建并确保其可执行。
值得留意的是: 修改这些目录和文件必要 root 权限,普通用户无法操纵
系统级自启动配置
可以发现在 /etc/xdg/autostart 下的文件都是以 .desktop 为后缀名的文件,在我之前的文章中有个创建桌面图标的教程,那个要配置的文件也是 .desktop 。没错,他俩一样。
那么他们最明显的一个区别就是 在用户自启动的 .desktop 中都含有 X-GNOME-Autostart-enabled 这个键,
而且它的值都是 true, 他表示为是否自动启动该脚本。
以下是 .desktop 文件的格式
开头还是 [Desktop Entry] ,这是 .desktop 的统一格式
然后是一些常见的 键
原文链接:https://blog.csdn.net/m0_73865314/article/details/135880221
3. 利用符号链接
假如日志文件已经被写到了 home 目录下,并且你不想修改代码或情况,你还可以考虑在 home 目录下的日志文件夹和步调的盼望相对路径之间创建一个符号链接。如许,虽然日志文件实际上在 home 目录下,但步调会以为它们在盼望的相对路径下。
在Linux中,你可以利用 ln -s 下令来创建符号链接,例如:
- ln -s ~/logs /path/to/your/app/relative/path/to/logs
复制代码 这条下令会在 /path/to/your/app/relative/path/to/logs 创建一个指向 ~/logs 的符号链接。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |