Ubuntu20.04开机启动项

一、启动项分类

Ubuntu开机启动项分为后端运行(后台服务)的和前端运行(桌面应用)的,其中后端运行的程序或脚本没有交互界面(没有终端,不弹出任何窗口),前端运行的程序为平时我们在终端键入的一般程序。

二、前端程序(脚本)自启动

方法一:

前端程序由XXX.desktop文件启动,在/home/username/.config/下新建一个文件夹autostart,如果有了的话就不用新建了,.config文件如果隐藏了可以在前一级目录下按ctrl+H显示出来。在autostart文件夹下新建XXXX.desktop,我这里是叫mystart.desktop,打开mystart.desktop,键入如下代码

[Desktop Entry]
Type=Application
Name=StartScript
Exec=/home/xxx/start.sh
Terminal=true

在/home/xxx下新建一个start.sh,打开start.sh

#! /bin/bash

source /home/xxx/.profile
source /home/xxx/.bashrc

gnome-terminal -- /bin/bash -c 'roslaunch bagname yourlaunch.launch' 

exit 0

gnome-terminal 会新建一个终端,这个终端不会加载环境变量,因此如果要运行roslaunch需要首先加载环境变量(通过source)。

方法二:

对于arm系统,在所有软件中搜索Session and Startup

点击add添加

其中的Name自己随便起,Command为待执行的sh文件,例:gnome-terminal -- /bin/bash -c /home/xxx/start.sh

对于x86系统,在所有软件中搜索Startup Applications Preferences,添加方法与arm中相同。

三、后端程序(脚本)自启动

新建脚本文件xxx.sh

格式与后端的脚本文件相同,但是脚本内容不会在前端显示

在/etc/systemd/system目录下新建文件xxx.service,在文件中输入如下内容

[Unit]
Description=StartScript
After=network.target

[Service]
Type=simple
User=root
ExecStart=/bin/bash -c /your dir/xxx(start).sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

sudo chmod 777 /your dir/xxx.sh

sudo chmod 777 /etc/systemd/system/xxx.service

sudo systemctl daemon-reload

sudo systemctl enable xxx.service

sudo systemctl start xxx.service

sudo systemctl status xxx.service查看服务状态,是否能够正常启动

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值