启动时自动启动 C++ 编译的应用程序

启动时自动启动 C++ 编译的应用程序

我制作了一个 C++ 应用程序。

该应用程序只向我提供终端输出(只是为了确保我的脚本已正确启动)。没有 GUI。我希望我的应用程序在计算机启动时运行。我的脚本通过以太网传输视频。

我想在启动时运行它。目前,我在终端中执行的操作是:

cd /home/myproject/build
./myapp

如何在 Ubuntu 18.04 启动时自动执行这些命令?

答案1

我假设您正在使用默认的 Ubuntu 版本,因此您将其gnome-terminal作为终端模拟器。

要运行在启动时输出到终端的可执行文件,您可以创建一个包含以下行的myapp.desktop文件:~/.config/autostart

[Desktop Entry]
Type=Application
Exec=gnome-terminal -e /home/<username>/myproject/build/myapp
Hidden=false
NoDisplay=false
X-GNOME-Autostart-Enabled=true
Name=myapp
Comment=My awesome video streaming app.

不要忘记<username>用您的 UNIX 用户名的实际值进行更改,您可以通过whoami在终端窗口中运行来获取该值。

.desktop此文件中最重要的行是Exec行(要运行的程序的命令行)和X-GNOME-Autostart-Enabled行(是否在启动时运行)。它会启动一个终端窗口 ( ) 并运行您编译的应用程序。您可以根据自己的喜好自定义以和gnome-terminal -e开头的行。NameComment

答案2

我建议crontab使用@reboot修饰符作为最简洁的解决方案,但它不会输出到终端,但您可以将其输出到电子邮件。Cron 允许根据时间或重新启动来安排任务。

命令:

crontab -e

选择 nano 作为编辑器。(或您的首选选项)然后添加:

MAILTO="youremail@emailprovider"
@reboot cd /home/myproject/build && ./myapp

到文件。

您还可以按@hourly、@daily、@yearly 或在一周或一个月内的特定时间运行命令。

另外,SHELL=/bin/bash在文件开头添加将命令发送到正确的 shell

相关内容