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

相关推荐
欧云服务器4 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI4 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️4 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年4 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2004 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟4 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬4 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民4 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬4 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L4 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区