在 debian 启动时使用命令打开终端

在 debian 启动时使用命令打开终端

我有一个应用程序,它是一个目标文件(从 ac 源代码获得)。当我从终端运行这个应用程序时,它工作正常。

我想在系统启动时运行这个应用程序。由于当前我正在终端上打印所有日志数据,因此我想打开终端并在终端中运行此应用程序(以便我可以看到实时日志并从终端向我的应用程序提供输入)。

在搜索了一些教程后,我能够创建一个在启动时运行 shell 脚本的服务。我修改了此脚本以打开终端并运行应用程序。如果我仅从终端运行 shell 脚本,它就可以正常工作。

但是当我从服务运行脚本时,我收到以下警告:

(x-terminal-emulator:16048):Gtk-警告 **:无法打开显示:

我哪里出错了?

这里我使用 beaglebone black 与 debian 一起运行。

这是我的服务代码(application.service)

[Unit]
Description=application setup

[Service]
WorkingDirectory=/root/application/
ExecStart=/root/application/start_application
SyslogIdentifier=application
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

这是start_application.sh

#! /bin/sh
#
# start_app_server
#

echo "Starting application server"
x-terminal-emulator -e "app_server/a.out"

echo Done

答案1

*nix 的方法是在没有终端的情况下启动脚本并将输出发送到日志文件。例如:

app_server/a.out > /var/log/app_server.log &

然后您可以将其添加到用户 crontab 中@reboot

一旦有效,真实的*nix 的方法是创建一个服务,其中包含某种形式的工控机如果需要的话。

相关内容