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 开机自动启动项目

相关推荐
2601_9618454210 小时前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
zzqssliu19 小时前
Next.js图片自适应压缩:跨境站点图片加载提速代码方案
linux·javascript·ubuntu
干掉乔治的猪19 小时前
【如何恢复 Ubuntu 引导分区:Windows11 + Ubuntu22.04 双系统 GRUB 修复踩坑记录】
linux·ubuntu·grub·修复·双系统
l齐天19 小时前
Ubuntu 中编译 Go + PBC 程序为 Windows 11 可运行文件
windows·ubuntu·golang
biubiubiu070620 小时前
Ubuntu中3种定时任务
数据库·ubuntu·postgresql
星间都市山脉1 天前
Android STS(Security Test Suite)完整介绍与测试流程
android·java·linux·windows·ubuntu·android studio·androidx
Par@ish1 天前
【网络安全】Web安全扫描工具Nikto安装和使用详细教程
安全·web安全·ubuntu
__Witheart__1 天前
make menuconfig 使用全流程
linux·ubuntu·rockchip
__Witheart__2 天前
Ubuntu 根文件系统开发流程及注意事项
linux·ubuntu·rockchip
__Witheart__2 天前
Linux SDK 中 build.sh 打包 updateimg 流程分析
linux·ubuntu·rockchip