创建服务文件
新建 .service 文件,例如 MyService.service:
sudo vi /etc/systemd/system/MyService.service
javascript
[Unit] # 区块:启动顺序与依赖关系
Description=自定义开机启动服务
After=network.target # 表示该服务的依赖关系
[Service] # 区块:启动行为,如何启动,启动类型
ExecStart=写自己的sh文件绝对路径
Restart=always
Type=simple #程序要用forking,注意类型,可以看上面的参考文章
User=root
[Install] # 区块,定义如何安装这个配置文件,即怎样做到开机启动
WantedBy=multi-user.target # multi-user.target 表示多用户命令行状态
编写脚本
确保 /path/to/your/script.sh 存在,并具有可执行权限:
sudo chmod +x /path/to/your/script.sh
如
javascript
#!/bin/bash
echo "开机启动测试 $(date)" >> /home/test.log
exit 0
启用服务
启用并启动服务:
sudo systemctl enable MyService.service
sudo systemctl start MyService.service
验证运行状态
查看服务状态:
sudo systemctl status MyService.service
roscore启动失败问题
需要注意服务的type,失败时因为用的simple,表示前台服务,会注销。启动程序应该用forking。