如果是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之后启动自己的程序,/etc/profile 这个文件就是这两个程序的中间,我们直接更改配置文件就行了
sudo vi /etc/profile 在文件开头输入你程序的路径cd /xxx/xxx/xxx/xxx 在执行你的程序 ./xxx
这个方法适合设备只运行我们自己写的程序的场合。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)