如果是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即可。
这样,下次开机,程序就会自动运行。不好的地方就是,如果程序运行过程中崩溃,这种方法没办法做到自动重启。