Ubuntu 21.04 设置ai服务开机自启动的两种方法

Ubuntu 21.04 设置ai服务开机自启动的两种方法

  • [方法1 /lib/systemd/system](#方法1 /lib/systemd/system)
  • [方法2 /etc/systemd/system](#方法2 /etc/systemd/system)

方法1 /lib/systemd/system

1.1.修改/lib/systemd/system/rc-local.service,如果没有需要新建,添加[Install]的内容,文件内容为

bash 复制代码
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
iGuessMainPID=no

[Install]
WantedBy=multi-user.target
Alias=rc-local.service

1.2.创建自启动脚本

bash 复制代码
$ sudo vim /etc/rc.local
bash 复制代码
  1 #!/bin/sh
  2 #/ai/ai_vehicle_peccancy/start.sh
  3 cd /ai/ai_vehicle_peccancy/
  4 nohup ./ai_vehicle_peccancy >/dev/null 2>&1 &
  5 exit 0

1.3.给权限

bash 复制代码
$ sudo chmod 755 /etc/rc.local

1.4.启动服务

bash 复制代码
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

1.5.重启测试

bash 复制代码
sudo reboot

参考文章:
Ubuntu22.04开机自启脚本

方法2 /etc/systemd/system

2.1 新建ai-object.service文件,文件内容为

bash 复制代码
[Unit]
Description=demo
After=network.target nginx.service

[Service]
WorkingDirectory=/home/ubuntu/AIServer/object
Type=forking
ExecStart=/home/ubuntu/AIServer/object/start.sh
ExecStop=/home/ubuntu/AIServer/object/stop.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

其中start.sh为目标程序的启动脚本,stop.sh为目标程序的关闭脚本。

2.2 创建install_service.sh脚本,内容为

bash 复制代码
#! /bin/bash
#  program : start program
chmod a+x start.sh
chmod a+x stop.sh
chmod a+x AIServer-object
cp -n ai-object.service /etc/systemd/system
chmod a+x /etc/systemd/system/ai-object.service
systemctl enable ai-object.service
systemctl start ai-object.service
echo `systemctl status ai-object.service`

2.3 启动服务

运行install_service.sh脚本,完成服务安装和自启动配置。

bash 复制代码
$ ./install_service.sh

注意:install_service.sh脚本只需要在安装时执行一次即可,后续服务器开机后会自动启动AI服务。

启动成功时控制台会输出如下信息:

bash 复制代码
	● ai-objtect.service - demo
 	Loaded: loaded (/etc/systemd/system/ai-objtect.service; enabled; vendor preset: enabled)
 	Active: active (running) since Fri 2022-08-19 10:43:39 CST; 4min 39s ago
	Process: 11563 ExecStart=/home/ubuntu/AIServer/object/start.sh (code=exited, status=0/SUCCESS)
Main PID: 11573 (AIServer)
  	Tasks: 21 (limit: 18744)
	 Memory: 10.6M
 	CGroup: /system.slice/ai-objtect.service
         		└─11573 ./AIServer

8月 19 10:43:39 ubuntu-08 systemd[1]: Starting demo...
8月 19 10:43:39 ubuntu-08 start.sh[11563]: [2022-08-19 10:43:39][INFO]  AIServer start
8月 19 10:43:39 ubuntu-08 systemd[1]: Started demo.

参考文章:
Linux下使用systemctl 开机自动启动项目

相关推荐
zhangrelay5 天前
《机器人控制器设计与编程》课程习题资料-2026
linux·笔记·学习·ubuntu
Linux-lucky5 天前
39-41-Linux学习之旅之redis缓存基础与NFS基础
linux·运维·mysql·ubuntu
QQ14220784496 天前
2012 年的老 ThinkPad E430 改装 Ubuntu 24.04全程翻车排查实录
ubuntu·项目复盘
阿钱真强道6 天前
06 嵌入式操作系统 | vim 与软件管理:apt / 源码编译
ubuntu·vim·嵌入式·apt·源码编译
牢姐与蒯6 天前
Linux进程间通信(三).基于匿名管道的进程池的实现
linux·运维·服务器·ubuntu
Linux-lucky6 天前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
士訫6 天前
【Linux 踩坑】HP Victus RTX4050 Ubuntu 系统双屏无法同时点亮解决方案(完美适配 Advanced Optimus 机型)
ubuntu
指尖的爷6 天前
ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册
ubuntu·架构·golang
虚无的纽扣6 天前
【Linux】将进程知识与基础IO融会贯通——简单自定义Shell的实现
linux·ubuntu
问简7 天前
Ubuntu 26 + Windows 10 双系统 NTFS 共享盘笔记
ubuntu