如果是Console程序,推荐使用systemd来实现,编写一个app.service文件如下:
[Unit]
Description=Agv Service
After=graphical.target
Requisite=graphical.target
[Service]
Type=simple
ExecStartPre=-/bin/ip link set can0 up type can bitrate 250000
ExecStart=/bin/app
Restart = always
RestartSec = 3s
TimeoutSec = infinity
[Install]
WantedBy=graphical.target
然后将文件放到/etc/systemd/system文件夹下,在终端中执行:systemctl enable app.service命令,就可以将/bin/app程序开机自启动,并且失败后自动重启。
但对于Unity或者Godot开发的图形界面的程序,未发现能够使用systemd启动的方法,目前采用的方法是使用Linux自带的Startup Applications Preferences(以Ubuntu为例)
打开后点击右侧的Add,填入Name(要显式的程序名称),Command,点击Browse选择对应的程序,Comment(程序的简短描述),点击Add即可。
这样,下次开机,程序就会自动运行。不好的地方就是,如果程序运行过程中崩溃,这种方法没办法做到自动重启。
wf9mib78 在他的博文《Linux系统启动自己的图形界面程序》https://blog.csdn.net/wf9mib78/article/details/78530189 中提到一个更绝的方法:
要想启动自己的图形界面,就需要启动X server,这个东西是在你登录Ubuntu输入用户名和密码之前启动的,所以我们可以在启动Ubuntu之前和启动X server之后启动自己

本文介绍了如何在Linux系统中通过systemd启动Console程序实现开机自动运行和失败后的自动重启。对于Unity或Godot等GUI程序,可以利用Startup Applications Preferences进行设置,但无法处理程序崩溃后的自动重启。此外,还分享了一种通过修改/etc/profile文件在启动X server后运行图形界面程序的方法,适用于设备仅运行特定程序的场景。

7683

被折叠的 条评论
为什么被折叠?



